JavaScript分配自变量

这是如何工作的:

function Test() {
    this.t=function() {
        var self=this;
        self.tutu = 15;
        console.log(self);
    }
}
var olivier = new Test();

这工作:

function Test() {
    this.t=function() {
        var self  = this,
            other = -1;
        self.tutu = 15;
        console.log(self);
    }
}
var olivier = new Test();

并且这不起作用(出现SyntaxError: Unexpected token .错误):

function Test() {
    this.t=function() {
        var self  = this,
            other = -1,
            self.tutu = 15;
        console.log(self);
    }
}
var olivier = new Test();

var语句用于声明变量。 所以,你试图定义一个名字为self.tutu的变量,这个变量在JavaScript中是无效的,因为变量名不应该有. 在他们的名字。 这就是它出现语法错误的原因。

SyntaxError: Unexpected token .

从MDN中的变量部分引用,

JavaScript标识符必须以字母,下划线(_)或美元符号($)开头; 后续字符也可以是数字(0-9)。 由于JavaScript区分大小写,所以字母包括字符“A”到“Z”(大写)以及字符“a”到“z”(小写)。

从JavaScript 1.5开始,您可以在标识符中使用ISO 8859-1或Unicode字母,如å和ü。 您还可以使用 uXXXX Unicode转义序列作为标识符中的字符。


var只能用于声明变量,但不能用于表达式之前。

var self.tutu = 15; 无效。


非常相似:使用JavaScript进行多个左手任务

根据这个答案,你实际上是这样做的: var self = (window.other = (self.tutu = 15)) ,这当然会给SyntaxError,因为你试图在self存在之前分配self.tutu

我不确定有什么办法可以这样做并行分配,但是当然

var self = this;
var other = -1;
self.tutu = 15;

将正常工作。

链接地址: http://www.djcxy.com/p/69987.html

上一篇: JavaScript assigning self variable

下一篇: Named vs. Anonymous Function: Identical?