JavaScript. Подробное руководство, 6-е издание
Шрифт:
Объект события передается обработчикам событий, зарегистрированным с помощью метода
В разделе 17.2.2 говорилось, что при регистрации обработчика события посредством HTML-атрибута броузер преобразует строку с программным кодом на языке JavaScript в функцию. Броузеры, отличные от IE, создают функцию с единственным аргументом
17.3.2. Контекст обработчиков событий
Когда обработчик событий регистрируется установкой свойства, это выглядит как определение нового метода элемента документа:
Поэтому нет ничего удивительного, что обработчики событий вызываются (с одним исключением, касающимся IE, которое описывается ниже) как методы объектов, в которых они определены. То есть в теле обработчика событий ключевое слово
В обработчиках ключевое слово
Обратите внимание, что обработчики событий, зарегистрированные таким способом, нельзя удалить, потому что ссылка на функцию-обертку, передаваемую методу
17.3.3. Область видимости обработчика событий
Подобно всем функциям в языке JavaScript, обработчики событий имеют лексическую область видимости. Они выполняются в той области видимости, в какой были определены, а не в той, где они были вызваны, и имеют доступ ко всем локальным переменным в этой области видимости. (Это, например, демонстрируется в функции
Особый случай представляют обработчики событий, которые регистрируются посредством HTML-атрибутов. Они преобразуются в функции верхнего уровня, которые не имеют доступа ни к каким локальным переменным - только к глобальным. Но по историческим причинам они выполняются в модифицированной цепочке областей видимости. Обработчики событий, определяемые посредством HTML-атрибутов, могут использовать свойства целевого объекта, объемлющего элемента
HTML-атрибуты плохо подходят для включения длинных строк программного кода, и такая модифицированная цепочка областей видимости помогает сократить его. Она позволяет использовать
С другой стороны, модифицированная цепочка областей видимости обработчика событий, определяемого с помощью HTML-атрибута, может стать источником ошибок, потому что свойства всех объектов в цепочке видимости скрывают одноименные свойства глобального объекта. Например, объект
17.3.4. Возвращаемые значения обработчиков
Значение, возвращаемое обработчиком события, зарегистрированным установкой свойства объекта или с помощью HTML-атрибута, следует учитывать. Обычно возвращаемое значение false сообщает броузеру, что он не должен выполнять действия, предусмотренные для этого события по умолчанию. Например, обработчик
Гримуар темного лорда VI
6. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Кондотьер
7. Ушедший Род
Фантастика:
фэнтези
боевая фантастика
аниме
попаданцы
рейтинг книги
Наследие Маозари
1. Наследие Маозари
Фантастика:
рпг
попаданцы
аниме
рейтинг книги
Вечный. Книга VI
6. Вечный
Фантастика:
рпг
фэнтези
рейтинг книги
Страх
2. Дети Арбата
Проза:
историческая проза
рейтинг книги
Шайтан Иван
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
рейтинг книги
Черный Маг Императора 14
14. Черный маг императора
Фантастика:
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Одержимый
Top Thriller
Детективы:
триллеры
маньяки
рейтинг книги