#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()
Любому прослушивателю событий всегда будет передан объект, описывающий событие.