JS中的very late binding

来源:互联网 发布:苹果免费看书软件 编辑:程序博客网 时间:2024/05/19 20:45

先看一段代码

var increment = function(funcArray){  var i = 0;  for(; i < funcArray.length; i+=1){   funcArray[i] = function(){    alert(i);   };  } };   var func1 = null, func2 = null; var funcArray = [func1, func2];  increment(funcArray); for(i = 0; i < funcArray.length; i += 1){  funcArray[i](); }

两个弹出的都是2.alert(i)的i就是那唯一的i,这里funcArray的两个元素的确有各自的上下文,但是i是共享的。