将匿名返回值直接指定给对象的属性

时间:2011-02-11 13:26:57

标签: javascript json anonymous-function

如何将匿名函数的返回值分配给我的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;
                }
            });

2 个答案:

答案 0 :(得分: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

在您定义并立即执行时,这也称为立即功能

答案 1 :(得分:1)

如果我正确理解您的问题,您可以执行以下操作:

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

将功能包装在括号中可让您在线调用该功能。