var clicked = $(event.currentTarget || target);
var clickedIsActive = clicked[0] == this.active[0];
我对 js 很陌生,在尝试阅读一些 jQuery 代码时,我遇到了上面的部分。
第二行的优先级是什么?
是吗:
var clickedIsActive = (clicked[0] == this.active[0]);
或者是别的什么?
谢谢你。
var clicked = $(event.currentTarget || target);
var clickedIsActive = clicked[0] == this.active[0];
我对 js 很陌生,在尝试阅读一些 jQuery 代码时,我遇到了上面的部分。
第二行的优先级是什么?
是吗:
var clickedIsActive = (clicked[0] == this.active[0]);
或者是别的什么?
谢谢你。
是的,首先评估作业的最右侧。
clickedIsActive
被赋值为表达式的结果clicked[0] == this.active[0]
。
var clickedIsActive = clicked[0] == this.active[0];
clickedIsActive 是比较的结果,clicked[0] == this.active[0]
所以clicked[0] == this.active[0]
必须先比较。
我认为您可能会将 与=
混淆==
。它们不是一回事,所以这很像比较苹果和橙子。
=
是一个任务。==
是一个“相等”的比较,只会返回true
or false
。
不管有没有误解,你的转码是正确的。赋值的右侧在实际赋值之前被解析。Javascript VM 需要知道它在分配什么,然后才能保存它。