将匿名返回值直接分配给对象的属性

发布于 2024-10-17 11:50:50 字数 626 浏览 3 评论 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;
                }
            });

How can I assign the returned value of an anonymous function to a property of my JSON object?

Here's my scenario:

            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;
                }
            });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滥情稳全场 2024-10-24 11:50:50

第一: 您没有 JSON 对象。您有一个使用对象文字表示法定义的普通 JavaScript 对象。

我假设您想立即执行匿名函数?只需在其主体后面添加 ()

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

这也称为立即函数,因为您定义并立即执行它。

First: You don't have a JSON object. You have a normal JavaScript object defined with object literal notation.

I assume you want to execute the anonymous function immediately? Just add () after its body:

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

This is also called immediate function as you define and immediately execute it.

白衬杉格子梦 2024-10-24 11:50:50

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

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

将函数括在括号中可以让您内联调用该函数。

If I understand your question correctly, you can do the following:

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

Wrapping the function in parentheses lets you call the function in-line.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文