[英]How set value into a function in the element of javascript Object?
我有以下代碼:
this.mGroupFunctions={};
for(var i=0; i<cols.length; i++){
var col=cols[i];
this.mGroupFunctions[col]=function(oContext) {
var name = oContext.getProperty(col);
return {
key: name,
text: name
};
};
}
如果我調試它,我得到
我在函數中插入col而不是變量col的值!
我該如何解決我的問題?
當函數運行時,變量col
不再包含創建函數時的值。 您可以使用立即調用的函數表達式(IIFE)創建一個閉包,該閉包捕獲循環中每次迭代的col
值:
this.mGroupFunctions = {};
for(var i=0; i<cols.length; i++){
this.mGroupFunctions[cols[i]] = (function(col){
return function(oContext) {
var name = oContext.getProperty(col);
return {
key: name,
text: name
};
};
})(cols[i]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.