Javascript function in Eloquent Javascript
在返回函数中,
1 2 3 4 5 6 7 8 | function greaterThan(x) { return function(y) { return y > x; }; } var greaterThanTen = greaterThan(10); show(greaterThanTen(9)); |
它不会"变成
换句话说,
1 | function(y) { return y > 10; } |
类似于写作:
1 | function greaterThan10(y) { return y > 10; } |
创建函数的函数利用闭包("捕获"10的东西)。
优点是你不需要为你想要使用的每一个数字不断地编写
有关引用函数的信息块,何时使用
- 调用函数和引用函数的区别?
- 我什么时候用括号,什么时候不用?
- 为什么函数语句需要名称?
您必须了解JavaScript中闭包概念的基础。闭包是Javascript语言中最复杂和特别的添加。正如您将注意到的,它们遵循语言流的词汇范围。在这个例子中,
1 2 3 4 5 6 7 8 | function greaterThan(x) { return function(y) { return y > x; }; } var greaterThanTen = greaterThan(10); console.log(greaterThanTen(9)); |
如果您看到闭包的主要概念。调用函数
当调用greaterThan(10)时,它将赋值为x并返回greaterThanten变量中的函数,该变量现在变为
1 | var greaterThanTen = function(x){10>x}; |
然后在下一行中,您调用了greaterthen(9),这样它将分配x值。我希望你明白我说的话。