Каково назначение элементов в скобках функции?

function handleButtonClick(e) {
var textInput = document.getElementById("songTextInput");
var songName = textInput.value;
//alert("Adding " + songName);

if (songName == "") {
    alert("Please enter a song");
}
else {
    //alert("Adding " + songName);
    var li = document.createElement("li");
    li.innerHTML = songName;
    var ul = document.getElementById("playlist");
    ul.appendChild(li);

    // for Ready Bake
    save(songName);
}
}

В этом коде почему мы помещаем "е" в функцию, которая остается в первой строке. Насколько я вижу, мы не использовали его, кроме как там?

2 ответа

Решение

Исходя из названия функции, я предполагаю, что это обработчик кликов, прикрепленный к кнопке на вашей странице. Обычно, когда событие инициируется, браузер передает объект Event в качестве аргумента обработчику события. В вашем коде аргумент e будет содержать этот объект Event. В вашем обработчике событий вы не используете переданный объект Event, поэтому его можно удалить.

Однако иногда вы можете захотеть использовать переданный объект события. Например: вы можете захотеть, чтобы определенное действие выполнялось при нажатии кнопки, а другое действие - при нажатии кнопки при нажатой клавише Ctrl. В этом случае вы должны использовать свойство ctrlKey переданного объекта Event, чтобы определить, какое действие выполнить.

Вы не используете это сейчас, но:

  • этот параметр, событие, принимается, даже если вы не объявляете его, если вы предоставляете его в качестве обратного вызова для утилиты привязки события (например, myElement.onclick=handleButtonClick;)
  • Вполне возможно, что ваш обработчик событий должен будет использовать событие в будущем, его можно объявить чище

Вам не нужно это объявлять, но это хорошая практика.

Другие вопросы по тегам