2016-09-20 2 views
0

Может ли кто-то интерпретировать эту строку javascript для меня?Пожалуйста, интерпретируйте эту строку скрипта java кода

mouseWheelEventName = $.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel', 

Нужно знать, что такое "?" делает, и что «DOMMouseScroll»: «mousewheel», в частности говорит «,» в конце строки ... почему это не так »;

спасибо.

ответ

1

Это троичный оператор, используется в качестве краткого условного оператора:

это то же самое, как говорят:

if ($.browser.mozilla) { 
    mouseWheelEventName = 'DOMMouseScroll'; 
} else { 
    mouseWheelEventName = 'mousewheel'; 
} 

Первая часть перед = объявляет переменную (mouseWheelEventName) зависимый на следующее условие.

Следующая деталь между =? - это условие (есть $.browser.mozilla true?).

Сразу после того, как ? является участком then (если условие истинно, установите переменную mouseWheelEventName в строку DOMMouseScroll).

После : является else (если условие НЕ истинно, установите переменную mouseWheelEventName в строку mousewheel).

Дальнейшее чтение: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

А почему есть запятая в конце этого, мы должны были бы увидеть более полный пример кода, в том числе и то, что следует, что сказать наверняка. Если бы я должен был догадаться, я бы сказал, что автор кода связывал переменные. Этот ответ может пролить свет на вас: Javascript best practices, why to use comma to chain function/variable declarations? (см. Выбранный ответ)

+0

Спасибо, спасибо! – Chuckv