Javascript:var = var = function

时间:2013-09-21 21:39:23

标签: javascript node.js var assign

我确定这件事情在某处重复,但我不知道该搜索什么。

所以,我一直在查看Node.JS应用程序并找到了这段代码,并想知道它的作用。我试过搜索,但我不知道要搜索什么,所以我希望有人能解释一下。

init = refresh = function () {
    // code here..
};

我理解1等于,但为什么2?它是否会产生某种别名,以便可以同时使用initrefresh运行函数?

3 个答案:

答案 0 :(得分:4)

=解析右侧,然后将结果分配到左侧。

执行此操作的结果与指定的结果相同。

这样就可以将函数分配给initrefresh

答案 1 :(得分:4)

昆汀做得很好,告诉你它在做什么。 我只想举一个例子来说明你可以使用它:

比如说你有一个对象:

var obj = {
    init: function() {
        var x = this.x = [1,2,3];
    }
};

这允许你做的是以两种不同的方式引用你的x变量(通过x或this.x)。

现在你为什么要这样做? 那么两个主要原因。

  1. 访问x而不是this.x更快(但你还需要在别处访问它)
  2. 当必须在一个函数中多次读/写时,它会生成更易于阅读的代码。
  3. 这只是你使用它的另一个原因。

    但在大多数情况下,它只是别名,例如:forEach - >每个

答案 2 :(得分:2)

以下是使用运算符关联性优先级的说明。

因此,查看Mozilla中的 operator precedence描述,当表达式包含多个具有相同优先级的运算符时,如

a OP b OP c

,然后检查该优先级是否使用从右到左从左到右的关联性。

a = b = c

JavaScript中的赋值运算符是其优先级别上唯一的运算符。

从右到左关联性

因此,在a = b = c中,首先评估b = c,将c的值分配给b

然后表达式变为a = b