我确定这件事在某处重复,但我不知道要搜索什么。
因此,我一直在查看 Node.JS 应用程序并找到此代码并想知道它的作用。我试过搜索,但我不知道要搜索什么,所以我希望有人能向我解释。
init = refresh = function () {
// code here..
};
我理解 1 等于,但为什么是 2?它是否会产生某种别名,以便可以同时使用init
和运行函数refresh
?
我确定这件事在某处重复,但我不知道要搜索什么。
因此,我一直在查看 Node.JS 应用程序并找到此代码并想知道它的作用。我试过搜索,但我不知道要搜索什么,所以我希望有人能向我解释。
init = refresh = function () {
// code here..
};
我理解 1 等于,但为什么是 2?它是否会产生某种别名,以便可以同时使用init
和运行函数refresh
?
=
解析右侧,然后将结果分配给左侧。
这样做的结果与分配的结果相同。
这样就将功能分配给init
两者refresh
Quentin 做得很好,告诉你它在做什么。我只是想插话,举一个你可能会使用它的例子:
比如说你有一个对象:
var obj = {
init: function() {
var x = this.x = [1,2,3];
}
};
这允许您以两种不同的方式(通过 x 或 this.x)引用您的 x 变量。
现在你为什么要这样做?两个主要原因。
这只是您使用它的另一个原因。
但在大多数情况下它只是别名,例如:forEach -> each
这是使用运算符关联性和优先级的解释。
因此,查看Mozilla 的运算符优先级描述,当一个表达式包含多个具有相同优先级的运算符时,如
a OP b OP c
,然后检查该优先级是否使用从右到左或从左到右的关联性。
a = b = c
JavaScript 中的赋值运算符是其优先级上唯一的运算符。
它具有从右到左的关联性
因此a = b = c
,b = c
首先评估 in ,将 的值分配c
给b
。
然后表达式变为a = b
。