解决闭包的两种方式

76 阅读1分钟
var data = ["1", "2", "3"];
// 第一种:ES6解决方式
for (let i = 0; i < data.length; i++) {
        setTimeout(function () {
                console.log(data[i]);
        }, 2000 + i * 1000);
}

// 第二种:传统闭包解决方式
for (var i = 0; i < data.length; i++) {
        (function (j) {
                setTimeout(function () {
                        console.log(data[j]);
                }, 2000 + j * 1000);
        })(i);
}