看到一段非常有用的代码,贴下来记录一下:
var obj=document.getElementById("main"); //用于绑定的一个数组 var items=["click","keypress"]; //遍历数组的每一个成员 for(var i=0;i<items.length;i++){ //使用一个自执行的匿名函数来激发出作用域 (function(){ //记住这个作用域内的值 var item=items[i]; //将一个函数绑定到该元素 obj["on"+item]=function(){ alert("Thanks for your "+item); } })(); }
解决了新的闭包函数被调用时,执行的总是其最后一次的赋值。