2012-03-22 114 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