2016-07-06 23 views
0

So fange ich an, jshint zu verwenden, und es gibt mir eine Warnung an der Linie mit dem ternären Operator.Jshint sagt, es gibt eine Warnung in ternären Operatoren

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

Ja, crossIconClicked ist ein event handler und e ist die Event.

Die Warnung ist:

einen Auftrag oder Funktionsaufruf erwartet und sah stattdessen einen Ausdruck (W030)

Warum soll ich verwenden, ternären Operator verzichten? Was stimmt nicht mit der Linie?

Ich möchte nicht die Warnung unterdrücken, nur zu wissen, was die "Gefahr" hier ist.

+0

Es ist nur eine "Meinung", die jshint hat. Sie können (wahrscheinlich) diesen Test deaktivieren, wenn Sie nicht zustimmen. – Pointy

+0

Versuchen Sie, die Klammern um 'e.cancelBubble = true 'zu entfernen. Die Klammern bewirken, dass es als Ausdruck ausgewertet wird, was unnötig ist. – 4castle

+0

@ 4castle - Es ist * angeblich * als Ausdruck zu bewerten. – Quentin

Antwort

2

Ihr ternärer Ausdruck hat keine linke Seite. Es ist entworfen, um einen von zwei Werten zu nehmen und diesen Wert irgendwo zu setzen.

Sie verwenden es als eine einfache if Anweisung.

+0

so lange Geschichte kurz: '? : ' . Wo '' muss ein Assigment sein? @Quentin – 40detectives

+1

Nein, 'etwas = ? : ' – Quentin