我遇到了这个javascript代码。
var digit_name = function() {
var names = ['zero', 'one','two'];
return function(n) {
return names[n];
};
}();
alert(digit_name(1));
输出为一个。我知道内部函数已分配给变量 digit_name 。在外部函数代码后的第六行中需要添加括号。谁能说清楚到底是怎么回事?
最佳答案
您看到的结尾()
使该外部函数立即执行。因此digit_name
最终存储了生成的内部函数,而不是指向外部函数的指针。
有关更多信息,请参见:What is the purpose of a self executing function in javascript?
关于javascript - 在Javascript中使用闭包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12165608/