Javascript 为什么在JS中对象被包装在括号中?

Javascript 为什么在JS中对象被包装在括号中?,javascript,parentheses,Javascript,Parentheses,给出以下示例: var foo = { root: ({ key1: "Value1", key2: "Value2", key3: "Value3" }) }; 与以下内容相比有什么区别: var foo = { root: { key1: "Value1", key2: "Value2",

给出以下示例:

var foo = {
    root:
        ({
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        })
    };
与以下内容相比有什么区别:

var foo = {
    root:
        {
            key1: "Value1",
            key2: "Value2",
            key3: "Value3"
        }
    };
在第一个示例中,有一个附加的paren包装对象。这有什么作用?这和范围界定有什么关系吗?它对执行有任何影响吗?
谢谢大家!

这里绝对没有区别


有一点很重要,那就是当你看到它们时。它们什么也不做:)它们是为了可读性而存在的,尽管它们是否达到了这个目的是值得怀疑的

根据我的说法,我们应该使用方括号来收集对象。因为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}]

没有区别。在这两种情况下
typeof(foo.root)
return
object
但我从未见过第一次SyntaxInterest,不知道你能做到这一点,我认为没有区别。我想知道其他人对此有什么看法。我盯着这两个例子看了半分钟,然后不得不阅读课文才能真正看出区别。。好问题!这回答了你的问题吗?