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();
上一篇:iis7.5安装配置php环境


下一篇:创建型模式(前引)简单工厂模式Simple Factory