给出以下示例:
var foo = {
root:
({
key1: "Value1",
key2: "Value2",
key3: "Value3"
})
};
与以下内容相比有何不同:
var foo = {
root:
{
key1: "Value1",
key2: "Value2",
key3: "Value3"
}
};
在第一个例子中,有一个额外的parens包裹对象。这有什么用途?它与范围有什么关系吗?它以任何方式影响执行吗? 谢谢!
答案 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}]