2010-06-21 3 views
2
var clicked = $(event.currentTarget || target); 
var clickedIsActive = clicked[0] == this.active[0]; 

Я довольно новичок в js, и, пытаясь прочитать код jQuery, я столкнулся с вышеупомянутым разделом.Каков порядок приоритета a = b == c в JavaScript?

Что является приоритетом для второй линии?

ли:

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

Или что-то еще?

спасибо.

+2

Вы могли бы просто попробовать. –

+0

Единственным оператором, который имеет более высокий приоритет, чем назначение, является оператор запятой, например. 'foo = 0,1;' интерпретируется как '(foo = 0), (1);' – CMS

ответ

6

Да, сначала выполняется оценка самой правой стороны задания.

clickedIsActive присваивается результат выражения clicked[0] == this.active[0].

2
var clickedIsActive = clicked[0] == this.active[0]; 

clickedIsActive является результатом сравнения clicked[0] == this.active[0] так clicked[0] == this.active[0] бы быть по сравнению в первую очередь.

0

Я думаю, вы могли бы запутать = с ==. Они не то же самое, так что это очень похоже на сравнение яблок с апельсинами.

= является уступкой. == - это «равное» сравнение, которое вернет только true или false.

Недоразумение или нет, ваш перекодировать правильно. Правая часть задания анализируется до фактического присвоения. VM Javascript должен знать, что он присваивает что-то, прежде чем он сможет его сохранить.