2011-02-11 105 views
0

如何將匿名函數的返回值分配給我的JSON對象的屬性?將匿名返回值直接分配給對象的屬性

這裏是我的情況:

  selectOptionData.push({ 
       value: 123, 
       text: 'Hi there', 
       selected: false, 
       transportObject: function(){ 
        var transObj = null; 
        $.each(transports, function(i, t) 
        { 
         if (t.ID == currentTranspObjID) { 
          transObj = t; 
          return; 
         } 
        }); 

        return transObj; 
       } 
      }); 

回答

1

第一:You don't have a JSON object。你有一個普通的JavaScript對象用對象字面符號定義。

我假設你想立即執行匿名函數?只是它的身體之後添加()

transportObject: (function(){ 
    var transObj = null; 
    $.each(transports, function(i, t) 
    { 
     if (t.ID == currentTranspObjID) { 
      transObj = t; 
      return; 
     } 
    }); 
    return transObj; 
}()) // <- see here 

這也被稱爲立即功能爲你定義並立即執行。

+0

菲利克斯感謝您的澄清。事實上,在發佈我的問題之前我做了這件事,但我添加了一個;最後...像:(function(){....}());顯然這打破了我編輯的插件,我以爲我做了一些wwrong ...你認爲在插件或它不能有一個;到底?非常感謝! – 2011-02-11 13:43:20

1

如果我正確理解你的問題,你可以做到以下幾點:

var myObject = { 
    value: 123, 
    text: "hi there", 
    magics: (function() { 
     // Do things. 
     return "stuff"; 
    }()) 
}; 

結束語括號中的功能可以讓你在打電話線的功能。