簡體   English   中英

如何在javascript對象的元素中將值設置為函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM