Показать сообщение отдельно
  #14 (permalink)  
Старый 15.10.2014, 14:47
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Спасибо всем, кто отписался, дали ответ на сайте-учебнике:
Атрибут onclick создает в качестве обработчика анонимную функцию, а код который вставлен в значение атрибута выполняется в этой функции. Т.е.
onclick="f(event);"
эквивалентно

el.onclick = function() {
f(event);
}

Т.к. функция f вызывается просто так, а не в контексте чего-то, то в качестве this в ней будет глобальный объект.
Похоже, что так, как бы глупо это ни звучало. Хотя всё равно это неприятный момент с учётом того, что ф-ция срабатывает при определённом действии польз-ля, а не просто так.

Сообщение от kostyanet Посмотреть сообщение
Ответ надо искать в спецификациях. Нафиг, просто знайте что инлайновые вызовы требуют явного присвоения аргументов (this,event). Так всегда было, лежи оно так вовек.
Да, спасибо. Похоже, остаётся лишь смириться)
Ответить с цитированием