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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-30
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案