У меня есть некоторые образцы кода, который связывает обработчик события следующим образом:связывание и обработчик события - передавая объект события
var h1=document.querySelector('h1');
h1.onclick=doit;
function doit(x) {
console.log(x);
}
Когда обработчик событий запускается (нажав на h1
элемента), выход объект event
, как и ожидалось.
Если я связать обработчик события следующим образом:
h1.onclick=doit.bind(h1);
я получаю тот же результат.
Однако, если я привязать его следующим образом:
h1.onclick=doit.bind(h1,1);
я 1
, первый параметр после h1
. Во всех случаях значение правильно установлено на h1
, но в последнем случае переданный параметр отображается , заменив ожидаемым объектом события.
Как сохранить объект события без перезаписи обработчика события как выражение функции?
Она не заменяет его, он делает * * предшествует оно (событие будет передано в качестве второго аргумента). Но если вы хотите, чтобы событие в первом параметре просто не применяло частично функцию (не связывайте его с аргументами 'bind'). – Bergi