2016-07-06 9 views
0

Итак, я начинаю использовать jshint, и это дает мне предупреждение на линии с тройным оператором.Jshint сообщает, что у троичных операторов есть предупреждение

crossIconClicked: function (e){ 
      //if W3C_standard ? stopPropagation_for_standard : for_Old_IExplorer 
      e.stopPropagation ? e.stopPropagation() : (e.cancelBubble=true); 
      this.shareClickEvent(e); 
}, 

Да, crossIconClicked является event handler и e является Event.

Это предупреждение:

Ожидаемое вызов присваивания или функции и вместо этого увидел выражение (W030)

Почему я должен воздержаться от использования тройной оператор? Что не так с линией.

Я не хочу подавлять предупреждение, просто зная, что здесь представляет собой «опасность».

+0

Это просто «мнение», которое имеет jshint. Вы можете (возможно) отключить этот тест, если не согласны. – Pointy

+0

Попробуйте удалить круглые скобки вокруг 'e.cancelBubble = true'. Скобки заставляют его оцениваться как выражение, которое не нужно. – 4castle

+0

@ 4castle - Предполагается, что * предполагается * выражаться как выражение. – Quentin

ответ

2

Ваше тернарное выражение не имеет левой стороны. Он предназначен для того, чтобы взять одно из двух значений и где-то поставить это значение.

Вы используете его как простой оператор if.

+0

так длинный рассказ короткий: '? : ' . Где '' нуждается в настройке? @Quentin – 40detectives

+1

Нет, 'что-то = ? : ' – Quentin