Задать вопрос
@Scket4
Студент, изучаю frontend

Почему не перезаписывается глобальная переменная в функции?

let adultNum = 0;
let kidsNum = 0;
let babesNum = 0;

function plusButton(count, countHTML, plus) {
  if (count == 0) {
    plus.classList.add('controls-span-active')
    }
  count =+ 1;
  countHTML.innerHTML = count;
};

function minusButton (count, countHTML, minus) {
  if (count > 0) {
    count -= 1;
    countHTML.innerHTML = count;
  }
  if (count == 0) {
    minus.classList.remove('controls-span-active');
  }
};

plus1.onclick = () => {
  plusButton(adultNum, adultNumHTML, minus1);
};
plus2.onclick = () => {
  plusButton(kidsNum, kidsNumHTML, minus2)
};
plus3.onclick = () => {
  plusButton(babesNum, babesNumHTML, minus3)
};


Переменные adultNum, kidsNum и babesNum которые передаются аргументом count, после выполнения функции не изменяются. Объявлены глобально. Если расписывать на каждый клик без функций - все работает. Такое чувство, что функция внутри себя его перезаписывает, но глобально не трогает. Так было бы справедливо, если бы переменная была объявлена в функции. Но это не так.

Подскажите, в чем может быть проблема?
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Dasslier
FrontEnd Developer
А с чего вы взяли, что они должны измениться глобально?
Внутри функции вы работаете с аргументом функции, а так как примитивы копируются не по ссылке, то в глобальной области ничего не изменится
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект
22 дек. 2024, в 09:51
3000 руб./за проект