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)
returnobject
但我从未见过第一次SyntaxInterest,不知道你能做到这一点,我认为没有区别。我想知道其他人对此有什么看法。我盯着这两个例子看了半分钟,然后不得不阅读课文才能真正看出区别。。好问题!这回答了你的问题吗?