javascript闭包 - JavaScript循环内的闭包为什么返回的是最后一个值
PHP中文网
PHP中文网 2017-04-10 15:44:11
0
11
711

错误写法

for(var i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);  
    }, 1000);
}

为什么这样写是错的

正确写法

for(var i = 0; i < 10; i++) {
    (function(e) {
        setTimeout(function() {
            console.log(e);  
        }, 1000);
    })(i);
}

为可以这样写?

for(var i = 0; i < 10; i++) {
    setTimeout((function(e) {
        return function() {
            console.log(e);
        }
    })(i), 1000)
}

为可以这样写?

PHP中文网
PHP中文网

认证高级PHP讲师

reply all(11)
刘奇

原来如此!!!

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template