【发布时间】:2013-06-09 04:23:29
【问题描述】:
我对编程非常陌生,并且有一个关于此处给出的闭包演示的快速问题:http://youtu.be/hQVTIJBZook?t=27m19s。
代码是:
var digit_name = function () {
var names = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
return function (n) {
return names[n];
};
} ();
alert(digit_name(3));
我的问题是:为什么在函数digit_name 之外还有一个额外的();?我们是在调用匿名辅助函数吗?我在没有(); 的情况下运行它,它返回" function (n) {return names[n];} "。我非常感谢您将参数 3 传递给函数 digit_name 时发生的情况的描述,因为该函数没有指定的参数。
如果我问的是基本问题或使用了不正确的术语,我深表歉意。我已经研究了一些相关的问题,但唉,无济于事!在此先感谢您提供完美答案的好心人。
【问题讨论】:
-
那些不应该在那里......
-
"()" 是用来实际调用函数来获取
digit_name = <result of calling the function> -
当然,别忘了阅读Javascript Closures的StackOverflow解释
标签: javascript function closures