为什么JS中的对象包裹在括号中?

时间:2012-09-20 09:00:20

标签: javascript parentheses

给出以下示例:

var foo = {
    root:
        ({
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        })
    };

与以下内容相比有何不同:

var foo = {
    root:
        {
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        }
    };

在第一个例子中,有一个额外的parens包裹对象。这有什么用途?它与范围有什么关系吗?它以任何方式影响执行吗? 谢谢!

3 个答案:

答案 0 :(得分:6)

这里绝对没有区别。

AFAIK 的地方就是evaluate an object literal on the console

答案 1 :(得分:2)

他们什么都不做:)他们在那里是为了可读性,尽管如果他们实现了这个目标是值得怀疑的。

答案 2 :(得分:1)

按照我的说法,我们应该使用方括号来收集对象。因为,JavaScript会理解它是一个数组。

圆括号(在示例1中使用)仅由javasript解析器验证。当您尝试访问它时,java脚本将返回圆括号中的最后一个对象(如堆栈中的顶级对象)。

尝试以下脚本

var foo = {
    root1:
        {
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        },
    root2:({
            key4: "Value4",
            key5: "Value5"
          },{
            key6: "Value6",
            key7: "Value7"
        }),
    root3:[
         {
            key8: "Value8",
            key9: "Value9"
          },{
            key10: "Value10",
            key11: "Value11"
          }
    ]
    };
    console.log(foo['root1']);  // returns object { key1, key2, key3}
    console.log(foo['root2']);  // returns only { key6,key7}
    console.log(foo['root3']);  //returns [ {key8,key9},{key10,key11}]
相关问题