这是Redux.js的一个示例我正在github上。有人可以解释一下这里使用的语法吗?
var currentListeners = []
var nextListeners = currentListeners
....
someFunc() {
// THIS:
var listeners = currentListeners = nextListeners
for (var i = 0; i < listeners.length; i++) {
listeners[i]()
}
.....
}
多分配和陈述是否独立?这可以解释它。但是在任务结束时丢失的分号是什么? 良好做法/不良做法?
答案 0 :(得分:3)
赋值运算符求值为已分配的内容(实际上是右操作数)。作为副作用,它更新左操作数的值。所以a = b = c
将c的值赋值给b,求值为c,然后将c的值赋值给a,并求值为c。
作业是右关联的 - 它从右到左分组。
此外,如果每个语句都在自己的行上,则语句之间的分号为[semi-]optional(此处缺少一些链接中包含的细节)。
最后,这里发生的一件有趣的事情是分配一个声明一个范围的变量。 Javascript中的函数是声明新范围的一种方法。请注意,如果只是在您的代码段中定义了该功能,则在调用该函数之前,它不会对currentListeners
的值产生影响。
答案 1 :(得分:0)
var listeners = currentListeners = nextListeners
与执行此操作相同:
var currentListeners = nextListeners;
var listeners = currentListeners;
希望这有帮助