Присвоить анонимное возвращаемое значение непосредственно свойству объекта - PullRequest
1 голос
/ 11 февраля 2011

Как я могу присвоить возвращаемое значение анонимной функции свойству моего объекта 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 ]

1 голос
/ 11 февраля 2011

Если я правильно понимаю ваш вопрос, вы можете сделать следующее:

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

Заключение функции в скобки позволяет вызвать функцию в строке.

1 голос
/ 11 февраля 2011

Первое: У вас нет объекта JSON .У вас есть нормальный объект JavaScript, определенный с литеральной нотацией объекта.

Я предполагаю, что вы хотите немедленно выполнить анонимную функцию?Просто добавьте () после его тела:

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

Это также называется немедленная функция , как вы ее определили и сразу же выполните.

...