var i=0;
for( var j = 0; j < 3; j++ ){
setTimeout ( function () {
i=i+1
console.log('i='+i);
console.log('j='+j);
}, j);
}
这样看就明白了吧
闭包对j引用的是j本身 所以一直是3
for( var j = 0; j < 3; j++ ){
setTimeout ( function () {
i=i+1
console.log('i='+i);
console.log('j='+j);
}, j);
}
这样看就明白了吧
闭包对j引用的是j本身 所以一直是3
for( var j = 0; j < 3; j++ )
{
(function(x){
setTimeout ( function () {
console.log(x);
}, 1000)
})(j)
};