标签:mon cti 闭包 console var 输出 date es6 作用域
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(new Date, i)
}, 1000);
};
输出结果:
Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 5
(index):32 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 5
(index):32 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 5
(index):32 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 5
(index):32 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 5
采用闭包解决
for (var i = 0; i < 5; i++) {
(function(k) {
setTimeout(function() {
console.log(new Date, k)
}, 1000)
})(i);
};
输出结果:
Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 0
(index):40 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 1
(index):40 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 2
(index):40 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 3
(index):40 Mon Apr 24 2017 09:33:47 GMT+0800 (中国标准时间) 4
采用ES6语法解决
for (let i = 0; i < 5; i++) {
setTimeout(function() {
console.log(new Date, i)
}, 1000);
};
注:let作用域只在for循环中~
输出结果:
Mon Apr 24 2017 09:38:42 GMT+0800 (中国标准时间) 0
(index):58 Mon Apr 24 2017 09:38:42 GMT+0800 (中国标准时间) 1
(index):58 Mon Apr 24 2017 09:38:42 GMT+0800 (中国标准时间) 2
(index):58 Mon Apr 24 2017 09:38:42 GMT+0800 (中国标准时间) 3
(index):58 Mon Apr 24 2017 09:38:42 GMT+0800 (中国标准时间) 4
标签:mon cti 闭包 console var 输出 date es6 作用域
原文地址:http://www.cnblogs.com/zhuzeliang/p/6755352.html