如何在Javascript中调用此函数?

时间:2014-02-23 18:49:59

标签: javascript

如何在Javascript中调用此函数? 因为它需要 n 作为其外部函数的参数,并且在其函数内部还需要另一个参数 i ,但是如何调用它?

function foo(n) { 
  return function (i) { 
           return n += i } }

4 个答案:

答案 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);

但是在这些情况下我们通常不会这样称呼它们,它们通常被认为是用作回调或类似的东西。