js 自运行函数作用
var obj = new Object(); function test2() { for (var i=1;i<5;i++) { obj['f'+i] = function() { return i; } } alert(obj.f1()); } test2();
此段代码弹出内容为:5 为什么结果不像想象中的应该是 1 呢?
下边方法可以解决这个问题:
var obj = new Object(); function test2() { for (var i=1;i<5;i++) { (function() { var index = i; obj['f'+index] = function() { return index; } }()); } alert(obj.f1()); } test2();