码迷,mamicode.com
首页 > 其他好文 > 详细

循环中创建函数的问题

时间:2015-04-17 13:46:35      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:

//糟糕的例子
var add_handlers = function(nodes){
  var i;
  for(i = 0; i < nodes.length; i++){
    nodes[i].onclick = function (e){
      alert(i);
    };
  }
};
//结束糟糕的例子
//改进的例子
var add_handlers = function(nodes){
  var helper = function(i){
    return function(e){
      alert(i);
    }
  };
  var i;
  for(i=0; i< nodes.length; i+=1){
    nodes[i].onclick = helper(i);
  } 
};

糟糕的例子问题在于事件处理器函数绑定了变量i本身,而不是函数在构造时的变量i的值。

避免在循环中创建函数。

循环中创建函数的问题

标签:

原文地址:http://www.cnblogs.com/stono/p/4434557.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!