Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在雄辩的Javascript中使用Javascript函数_Javascript - Fatal编程技术网

在雄辩的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)
即可。当然,这是一个做作但受欢迎的例子

有关引用函数的信息块,何时使用
()
,何时不使用,以及一些更现实的示例,请参见:


调用greaterThan(10)时,它为x赋值,并返回greaterThan变量中的函数,该变量现在变为

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”
。这很好。