声明顺序和分配

问题描述:

function() { var w = new Object(), w.x = 10, y = 11; } 
SyntaxError: Expected ';' 

然而,声明顺序和分配

function() { var w = new Object(), x = w, y = 11; } 

不产生错误和X确实有W上。第一个有什么问题?

您不能声明变量名为w.x

+1

哎呀,是的愚蠢的问题,我在想什么!谢谢。 – Murali 2009-12-31 21:14:16

var关键字用于声明变量。

您可以在var关键字后面的逗号分隔列表中唯一放置的内容是变量声明。

因此,你的第一个语法是无效的 - 它读作声明三个变量(ww.xy)。
w.x的分配是一个语句(它向xw属性赋值),而不是变量声明,因此需要用分号来终止var语句。

+0

谢谢SLaks,我试图在w中声明一个不正确的变量。 – Murali 2009-12-31 21:15:36