开发者

Why are global and this.something variables not decleared?

开发者 https://www.devze.com 2023-02-11 09:38 出处:网络
When I used a new variable something.something or this.something, my code worked when I omitted the var keyword:

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

精彩评论

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

关注公众号