#javascript #dom-events
#javascript #dom-события
Вопрос:
function doSomething(e) {
var targ;
if (!e) var e = window.event; //<<<< what does it do this check?
if (e.target) targ = e.target;
}
Зачем нам нужно это проверять?
Ответ №1:
Это добавляет совместимости со старыми браузерами (Internet Explorer?), Которые не поддерживали передачу event
объекта обработчикам, но вместо этого определяли их в объекте window.
Также var
не требуется в var e = window.event
, потому что он уже объявлен (параметр).
Это также может быть записано как e = e || window.event;
Ответ №2:
В основном это if проверяет, установлена ли e
переменная. Если это не так — ему присваивается значение window.event (произошедшее событие window)
Комментарии:
1. так нам действительно нужно это проверять? можем ли мы просто предположить, что ‘e’ получит значение в любом случае?
2. @YoniGeek То, что сказали другие ребята (Shurdoof и Alex R.), это для совместимости с браузерами,
e
будет установлено в стандартных браузерах, но не window.event (только IE), поэтому, если вы назначите без проверки в браузере W3C, вы получите пустое значение вe