Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Inline JS событие (https://javascript.ru/forum/events/51477-inline-js-sobytie.html)

_zzzzz_ 07.11.2014 21:15

Inline JS событие
 
Все привет.

У меня есть код,

<a href="#" onclick="run(event, this)">Click</a>

function run(e, s) {
console.log(e);
console.log(s);
}

Никак не могу понять почему нужно передавать именно event (это же вроде не глобальное свойство window.event => undefined) и как это выглядит "внутри" JS ?

Aetae 08.11.2014 09:50

<a href="#" onclick="run(event, this)">Click</a>
Это примерно то же самое что:
a.onclick = function(event){
    with(this){
        run(event, this)
    }
}
Передавать именно event нужно потому что аргумент автоматически создающейся обёрточной анонимной функции именно под таким именем фигурирует в спецификации. Назначая обработчик из скрипта вы можете называть его как хотите.


Часовой пояс GMT +3, время: 03:10.