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();