javascript
var a = new Array; for (var i = 0; i < 10; i++) { var c = i; a[i] = function () { console.log(c); }; } for(i=0;i<10;i++){ a[i](); }
a[i]()的值全为9
按的我的理解是,按执行顺序,第一个for是先行执行了,当执行完毕,变量C的值,也就是恒等为9。当第二个for调用a[i]时,由于c的值已经固定了,所以不管调用多次,a[i]()都是为9,而不会发送变化。 不知道这样的理解正确否?
就是这样的理解,你自己把
a
全部打出来看看就知道的。