Спасибо всем, кто отписался, дали ответ на сайте-учебнике:
Атрибут onclick создает в качестве обработчика анонимную функцию, а код который вставлен в значение атрибута выполняется в этой функции. Т.е.
onclick="f(event);"
эквивалентно
el.onclick = function() {
f(event);
}
Т.к. функция f вызывается просто так, а не в контексте чего-то, то в качестве this в ней будет глобальный объект.
Похоже, что так, как бы глупо это ни звучало. Хотя всё равно это неприятный момент с учётом того, что ф-ция срабатывает при определённом действии польз-ля, а не просто так.
Сообщение от kostyanet
|
Ответ надо искать в спецификациях. Нафиг, просто знайте что инлайновые вызовы требуют явного присвоения аргументов (this,event). Так всегда было, лежи оно так вовек.
|
Да, спасибо. Похоже, остаётся лишь смириться)