2012-03-22 90 views

回答

6

使用new调用函数总是会生成一个值。现在,你的第二行

{} 

是一个空的代码块,而不是对象文字。

尝试:

({}) 

或:

0,{} 

控制台解析您键入的声明,没有表情线。因此,语句开始处的开放大括号是块分隔符,而不是对象文字的开头。通过包含其他令牌来强制解析器解析表达式,您可以开始一个对象文字。

+0

嗯。现在我明白了,为什么在数组的情况下,两种方式是相同的(新的Array()或只是[])。但是,js如何解释这个结构0,{}? – 2012-03-22 16:51:09

+2

这是一个涉及逗号运算符的表达式。还有其他方法可以做到这一点:考虑'0? 0:{}'或'0 || {}'或'true && {}'。关键是明确地开始一个表达式。 – Pointy 2012-03-22 16:53:33