2
var clicked = $(event.currentTarget || target);
var clickedIsActive = clicked[0] == this.active[0];

我对 js 很陌生,在尝试阅读一些 jQuery 代码时,我遇到了上面的部分。

第二行的优先级是什么?

是吗:

var clickedIsActive = (clicked[0] == this.active[0]);

或者是别的什么?

谢谢你。

4

3 回答 3

6

是的,首先评估作业的最右侧。

clickedIsActive被赋值为表达式的结果clicked[0] == this.active[0]

于 2010-06-21T15:55:00.327 回答
2
var clickedIsActive = clicked[0] == this.active[0];

clickedIsActive 是比较的结果,clicked[0] == this.active[0]所以clicked[0] == this.active[0]必须先比较。

于 2010-06-21T15:56:09.137 回答
0

我认为您可能会将 与=混淆==。它们不是一回事,所以这很像比较苹果和橙子。

=是一个任务。==是一个“相等”的比较,只会返回trueor false

不管有没有误解,你的转码是正确的。赋值的右侧在实际赋值之前被解析。Javascript VM 需要知道它在分配什么,然后才能保存它。

于 2010-06-21T15:59:23.797 回答