解释IIFE内循环

时间:2016-11-08 15:42:57

标签: javascript

我读过this文章,但我有一些问题需要理解。

var funcs = [];
for (var i = 0; i < 3; i++) {
    (function IIFE(arg) {
        funcs[arg] = function output() {
            console.log("My value: " + arg);
        };
    })(i);
}
for (var j = 0; j < 3; j++) {
    funcs[j]();
}

如何解释此代码段的机制?

开始:i的值为0。 IIFE获取i的值并将其存储在arg

funcs[0]只是被分配到名为output的函数。

第二次,当i为1时,funcs [1]会得到一个全新的函数吗?这是假的吗?

.....

问题出在这里,funcs[0]();如何知道arg为0?事情如何互动?

功能output()查找并要求IIFE function提供所需的值?对?有人可以说哪个插图是正确的吗?

IIFE

通过提供此图片,例如,数字1,我​​的意思是,当funcs[0]()执行时,输出查找arg,它找不到它,然后进入更高的范围并且找到它。例如,每个功能都有它自己的IIFE。我不确定这与Javascript甚至编程世界有多远,但帮助我理解它!

0 个答案:

没有答案