Передача таблицы в функции после нажатия кнопки

#javascript

Вопрос:

Передача таблицы в функциях после нажатия кнопки. Как я могу получить этот эффект со всеми параметрами массива (.shift) Я получаю следующее сообщение: app.js:13 Неперехваченная ошибка типа: arr.shift не является функцией в HTMLButtonElement.b (app.js:13)

 const btn = document.getElementById('id1'); btn.addEventListener('click', b) function a() {  const arr = [1, 2, 3 , 4];  const btn = document.getElementById('id1');  btn.addEventListener('click', b);  }  a()   function b(arr) {  arr.shift();  console.log(arr);  }  

Ответ №1:

Передавая b в addEventListener функцию, она передает переменную события в параметр arr. Однако переменная события не является массивом, поэтому в ней нет функций прототипа массива. Если вы хотите использовать переменную arr , объявленную в a , вам нужно будет использовать что-то вроде этого:

 function a() {  const arr = [1, 2, 3 , 4];  const btn = document.getElementById('id1');  btn.addEventListener('click', (e)=gt;{b(arr)});  }  a()  

Любому прослушивателю событий всегда будет передан объект, описывающий событие.