1
A
回答
6
使用new
调用函数总是会生成一个值。现在,你的第二行
{}
是一个空的代码块,而不是对象文字。
尝试:
({})
或:
0,{}
控制台解析您键入的声明,没有表情线。因此,语句开始处的开放大括号是块分隔符,而不是对象文字的开头。通过包含其他令牌来强制解析器解析表达式,您可以开始一个对象文字。
嗯。现在我明白了,为什么在数组的情况下,两种方式是相同的(新的Array()或只是[])。但是,js如何解释这个结构0,{}? – 2012-03-22 16:51:09
这是一个涉及逗号运算符的表达式。还有其他方法可以做到这一点:考虑'0? 0:{}'或'0 || {}'或'true && {}'。关键是明确地开始一个表达式。 – Pointy 2012-03-22 16:53:33