Является ли параметр события обязательным в EventListener.handleEvent ()? - PullRequest
0 голосов
/ 27 декабря 2018

В Mozilla Doc метод handleEvent объявлен как

eventListener.handleEvent(event);

https://developer.mozilla.org/en-US/docs/Web/API/EventListener/handleEvent

и addEventListener как

target.addEventListener(type, listener[, options]);

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Syntax

с listener, являющимся handleEvent или объектом, содержащим такой метод, но на той же самой странице есть пример:

// Function to change the content of t2
function modifyText() {
  ...
}

// add event listener to table
var el = document.getElementById("outside");
el.addEventListener("click", modifyText, false);

, где modifyText не принимает параметров, что противоречит handleEvent синтаксис, хотя все работает, где мне не хватает?

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете передать в функцию столько аргументов, сколько захотите, независимо от того, сколько у нее параметров.Эти дополнительные аргументы затем теряются (но если они не используются, это не имеет значения).

 function handler(a) {
  //...
 }

 handler(); // a = undefined
 handler(1); // a = 1
 handler(1, 2); // a = 1, ? = 2

Поэтому, если вам не нужен доступ к событию в обработчике, вы можете просто пропуститьпараметр.

PS: Доступ к этим "потерянным аргументам" можно получить по ключевому слову arguments ... но, пожалуйста, никогда не используйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...