JavaScript不支持使用局部变量进行闭包吗?
我对这段代码感到非常困惑:
var closures = [];function create() { for (var i = 0; i < 5; i++) { closures[i] = function() { alert("i = " + i); }; }}function run() { for (var i = 0; i < 5; i++) { closures[i](); }}create();run();
根据我的理解,它应该打印0,1,2,3,4(这不是闭包的概念吗?)。
而是打印5,5,5,5,5。
我试过Rhino和Firefox。
有人可以向我解释这种行为吗?Thx提前。
翻过高山走不出你
白衣染霜花
守着一只汪
相关分类