基础就不说了 。直接给链接吧·······
闭包: http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
直接上综合题了:
for (var i = 0; i < 5; i++) {
setTimeout(function() {console.log(i);
}, 1000);
}
console.log(i);
在这个js的基础上修改 吧变量i的输出顺序变为 5 0 1 2 3 4
for(var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i); //5 5 5 5 5
}, 1000);
}
/********************************************华丽的分割线************************************************/
解答1:
var f2 = f1();
for (var i = 0; i < 5; i++) {
f2();
(function (a) {
setTimeout(function() {
console.log(a); // 0 1 2 3 4
}, 1000);
}(i))
}
function f1() {
var num=1;
return function () {
num++;
if(num == 5) console.log(num); //5
}
}
解答2:
for (var i = 0; i <= 5; i++) {
var num = Math.ceil(Math.abs(i-5)/5) * 1000;
(function (a) {
setTimeout(function() {
console.log(a); // 5 0 1 2 3 4
}, num);
}(i))
}