Javascript: var = var = function

Javascript: var = var = function

本文关键字:var function Javascript      更新时间:2023-09-26

我确定这个东西在某处重复,但我不知道该搜索什么。

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

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

我理解 1 等于,但为什么是 2? 它是否制作了某种别名,以便该函数可以在initrefresh下运行?

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

执行此操作的结果与分配的结果相同。

这样就把函数同时分配给initrefresh

>昆汀在告诉你它在做什么方面做得很好。我只是想插话举一个例子,你可以使用它:

例如,假设您有一个对象:

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

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

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

  1. 访问 x 比访问 this.x 更快(但您仍然需要在其他地方访问它)
  2. 当必须在一个函数中多次读取/写入 x 次时,它会生成更易于阅读的代码。

这只是使用它的另一个原因。

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

下面是使用运算符关联性和优先级的解释。

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

a OP b OP c

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

a = b = c

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

它具有从右到左的结合性

所以在a = b = c中,首先计算b = c,将c的值分配给b

然后表达式变为a = b