开发者

Why are global and this.something variables not decleared?

When I used a new variable something.something or this.something, my code worked when I omitted the var keyword:

开发者_StackOverflow
this.something = 1;
something.something = 1;

but when I write

var this.something = 1;
var something.something = 1;

it doesn't work.

Why?


I suppose because var expects a valid identifier, and . is not a valid character for an identifier.

It thinks you want the variable name to actually be this.something, which isn't valid.


When testing the two versions, I get slightly different errors.

The one with this.something tells me:

SyntaxError: Unexpected token this

The one with something.something tells me:

SyntaxError: Unexpected token .

Same error, but the invalid token in the first is the keyword this.


You can't declare a this field (member field), or a field of another object. It's simply not valid syntax.

You use var to declare local variables, which are either function-level or (if you're not in a function) global. And as Patrick said, a variable name can not contain a period.


var is the syntax for declaring a variable. In Javascript simply by assigning a value to a property it will attach the property to the object.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜