我遇到了这个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/

10-12 12:33
查看更多