我正在嘗試爲第三方控件建立一個處理程序數組。其中一個必需的對象是一個回調處理程序。問題是allProvider(item)被調用,「theValue」變量不再指向相同的位置 - 它總是被設置爲它分配給的最後一個值。我真正想做的是在構建數組時立即評估「theValue.name」,而不是稍後。在這一點上,我願意接受任何解決方案。由於建立一個匿名函數時,預先估計對象值
var handlers = [];
for(var i=0;i<myArray.length;i++){
var theValue = myArray[i];
handlers.push({
name: myArray.name,
allProvider: function(item){
return "All "+ theValue.name; //This always == myArray[myArray.length - 1]
}
});
}
那完美。你得到的是第一個和這篇文章的檢查 - 正是我所需要的。謝謝 –