记录JS闭包一个经典的用法

问题:点击对应链接弹出序号

链接A
链接B
链接C
链接D

(1)、常用写法:

var links = documents.links; // 获取Dom节点
for (var i = 0, length = links.length; i < length; i++) {
  links[i].index = i;
  links[i].onclick = function () {
    alert(this.index);
  };
}

给每个Dom缓存一个i,传到对应点击的函数中去

(2)、闭包写法

var links = documents.links; // 获取Dom节点
for (var i = 0, length = links.length; i < length; i++) {
  (function() {
    links[i].onclick = function () {
      alert(i + 1);
    }
  })(i);
}


你可能感兴趣的:(前端)