在雄辩的Javascript中使用Javascript函数
在雄辩的Javascript中使用Javascript函数,javascript,Javascript,greaterThanTen(9)如何成为返回函数中的y变量?我的意思是参数(9)如何成为返回函数参数中的y?既然greaterThanTen=greaterThan(10),那么9不会被x取代吗?9不就是要替换x=10参数吗?我只是不明白返回函数中的9参数是如何到达y的 function greaterThan(x) { return function(y) { return y > x; }; } var greaterThanTen = greaterT
greaterThanTen(9)
如何成为返回函数中的y
变量?我的意思是参数(9)
如何成为返回函数参数中的y
?既然greaterThanTen=greaterThan(10)
,那么9
不会被x
取代吗?9
不就是要替换x=10
参数吗?我只是不明白返回函数中的9
参数是如何到达y
的
function greaterThan(x) {
return function(y) {
return y > x;
};
}
var greaterThanTen = greaterThan(10);
show(greaterThanTen(9));
它不会“成为y
变量”。函数greaterThan
返回一个函数,传递给greaterThan
的值在该返回函数中被“捕获”
function greaterThan(x) {
return function(y) {
return y > x;
};
}
var greaterThanTen = greaterThan(10);
show(greaterThanTen(9));
换句话说,大于(10)
创建以下函数:
function(y) { return y > 10; }
这类似于写作:
function greaterThan10(y) { return y > 10; }
创建函数的函数利用闭包(“捕获”10的东西)
优点是,你不需要为你想使用的每个数字都编写greaterThanNnn
函数,你只需调用greaterThan(n)
就可以了。当然,这是一个精心设计但很流行的例子
有关引用函数的信息块,何时使用()
,何时不使用,以及一些更现实的示例,请参见:
y
变量”。函数greaterThan
返回一个函数,传递给greaterThan
的值在该返回函数中被“捕获”
function greaterThan(x) {
return function(y) {
return y > x;
};
}
var greaterThanTen = greaterThan(10);
show(greaterThanTen(9));
换句话说,大于(10)
创建以下函数:
function(y) { return y > 10; }
这类似于写作:
function greaterThan10(y) { return y > 10; }
创建函数的函数利用闭包(“捕获”10的东西)
优点是,您不需要为每个要使用的号码编写greaterThanNnn
函数,只需调用greaterThan(n)
即可。当然,这是一个做作但受欢迎的例子
有关引用函数的信息块,何时使用()
,何时不使用,以及一些更现实的示例,请参见:
var greaterThanTen = function(x){10>x};
然后在下一行中,您调用了greaterThanTen(9),因此它将指定x值。我希望您理解我所说的。当您调用greaterThan(10)时,它为x赋值,并返回greaterThan变量中的函数,该变量现在变为
var greaterThanTen = function(x){10>x};
然后在下一行中,您调用了greaterThanTen(9),因此它将指定x值。我希望您理解我所说的。您必须了解JavaScript中闭包概念的基础。闭包是JavaScript语言中最棘手和最特殊的添加。您会注意到,它们遵循语言流的词汇范围。在这个例子中
大于(x)的函数{
返回函数(y){
返回y>x;
};
}
var greaterThanTen=大于(10);
控制台日志(大于10(9));
如果你看到闭包的主要概念。调用大于的函数后,它将创建另一个函数。但当您传递第一个参数10时,它将取代x
。进一步,当调用函数并传递第二个参数9时
它发生在y
内置函数上。通过这种方式,值存储在函数调用堆栈中,您可以对这些值进行比较和操作。您必须了解JavaScript中闭包概念的基础。闭包是JavaScript语言中最棘手和最特殊的添加。您会注意到,它们遵循语言流的词汇范围。在这个例子中
大于(x)的函数{
返回函数(y){
返回y>x;
};
}
var greaterThanTen=大于(10);
控制台日志(大于10(9));
如果你看到闭包的主要概念。调用大于的函数后,它将创建另一个函数。但当您传递第一个参数10时,它将取代x
。进一步,当调用函数并传递第二个参数9时
它发生在y
内置函数上。通过这种方式,值存储在函数调用堆栈中,您可以对这些值进行比较和操作。查看此答案这是一个很好的示例,我现在对闭包有了更深入的理解。查看此答案这是一个很好的示例,我现在对闭包有了更深入的理解。好的,你的回答现在真的帮助我理解了这一点。我想我的问题是我不理解返回函数中发生了什么。@Vodka\u Tonic它正在返回;)在JS中,函数本身可以是值,如42
或“ohai”
。这很好。好吧,你的回答现在真的帮助我理解了这一点。我想我的问题是我不理解返回函数中发生了什么。@Vodka\u Tonic它正在返回;)在JS中,函数本身可以是值,如42
或“ohai”
。这很好。