为什么没有声明global和this.something变量?

时间:2011-02-15 18:25:31

标签: javascript extjs

当我使用 new 变量some​​thing.something或this.something时,我的代码在省略var关键字时起作用了:

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

但是当我写

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

它不起作用。

为什么?

3 个答案:

答案 0 :(得分:2)

我想因为var需要有效的标识符,.不是标识符的有效字符。

它认为你希望变量名实际上是this.something,这是无效的。


测试这两个版本时,我的错误略有不同。

this.something的人告诉我:

  

SyntaxError:意外的令牌

something.something的人告诉我:

  

SyntaxError:意外的令牌。

相同的错误,但第一个中的无效令牌是关键字this

答案 1 :(得分:2)

您不能声明this字段(成员字段)或其他对象的字段。这根本就不是有效的语法。

使用var声明局部变量,这些变量可以是函数级的,也可以是(如果不在函数中)全局变量。正如Patrick所说,变量名称不能包含句点。

答案 2 :(得分:0)

var是声明变量的语法。在Javascript中,只需为属性赋值,它就会将属性附加到对象。