4.1 闭包允许内层函数引用父函数中的变量,但是该变量是最终值

示例六:
/**
 * 
 * 
    *
  • one
  • *
  • two
  • *
  • three
  • *
  • one
  • *
*/ var lists = document.getElementsByTagName('li'); for(var i = 0 , len = lists.length ; i < len ; i++){ lists[ i ]. = function(){ alert(i); }; }
你会发现当鼠标移过每一个
解决方法一:
var lists = document.getElementsByTagName('li');
for(var i = 0 , len = lists.length ; i < len ; i++){
    (function(index){
        lists[ index ]. = function(){
            alert(index);    
        };                    
    })(i);
}
解决方法二:
var lists = document.getElementsByTagName('li');
for(var i = 0, len = lists.length; i < len; i++){
    lists[ i ].$$index = i;    //通过在Dom元素上绑定$$index属性记录下标
    lists[ i ]. = function(){
        alert(this.$$index);    
    };
}
解决方法三:
function eventListener(list, index){
    list. = function(){
        alert(index);
    };
}
var lists = document.getElementsByTagName('li');
for(var i = 0 , len = lists.length ; i < len ; i++){
    eventListener(lists[ i ] , i);
}
来与:http://www.cnblogs.com/rainman/archive/2009/05/04/1448899.html