如何在Javascript中调用此函数? 因为它需要 n 作为其外部函数的参数,并且在其函数内部还需要另一个参数 i ,但是如何调用它?
function foo(n) {
return function (i) {
return n += i } }
答案 0 :(得分:6)
调用函数的返回值:
foo(1)(2);
答案 1 :(得分:6)
这是一个经典的closure示例:它确实返回了一个可以访问n
变量的函数。
var counter = foo(0);
counter(1); // 1
counter(2); // 3
counter(5); // 8
答案 2 :(得分:4)
这是一个返回函数的函数。通常你会想要一个对这个函数的引用,比如这个
foofn = foo(7);
result = foofn(7);
您也可以立即调用该功能
result = (foo(7))(7);
这个功能是做什么的?那不是你的问题......
答案 3 :(得分:2)
这是我们通常使用JavaScript闭包的方式,第一个函数创建一个范围,以保证n
变量在内部函数中的安全性:
var n = 11;
var myfunc = foo(n);
现在您可以使用简单的myfunc
参数调用i
函数,而使用n
时无需将其直接传递给函数:
myfunc(10);
所以,如果您只想调用它,一旦创建它,您可以执行:foo(11)(10);
但是在这些情况下我们通常不会这样称呼它们,它们通常被认为是用作回调或类似的东西。