Почему counter не инкрементируется?

172
23 ноября 2021, 07:00

Почему в данной конструкции counter не инкрементируется?

var button = document.getElementById("button")
var productCounter = 0
function incrementCounter(counter) {
counter++
console.log(counter)
}
button.addEventListener("click", function() {
  incrementCounter(productCounter);
})

JS FIDDLE

Answer 1

В javascript по ссылке передаются только объекты и массивы а остальные нет можно реализовать так

var button = document.getElementById("button")
var productCounter = {a: 0}
function incrementCounter(counter) {
counter.a++
console.log(counter.a)
}
button.addEventListener("click", function() {
  incrementCounter(productCounter);
})

P.S сейчас вы отправляете значение по функции 0 а в функции делается копия переменной в которому прибавляет 1, оригинал не трогается. js не похож на другие языки где можно просто поставить & и все

READ ALSO
Пересборка webpack при добавлении .html файла в runtime

Пересборка webpack при добавлении .html файла в runtime

Добрых времени суток, проблема, есть webpack config, всё работает как нужно, за исключением одного но, когда в рантайме (при зпущенном локальном сервере)...

206
Как найти пятницу 13 по году? [дубликат]

Как найти пятницу 13 по году? [дубликат]

Код по идее должен прогонять объект Date с определенным годом и складывать в массив все пятницы 13еНо в консоли выкидывает ошибку 400

87
Ошибка OpenCart 2.3 - magnificPopup is not a function

Ошибка OpenCart 2.3 - magnificPopup is not a function

В OpenCart (OcStore) 23 установил модуль для страницы отзывов с изображениями

183
Html и javascript

Html и javascript

Используя языки программирования html и javascript нужно добавить функцию Color (), которая изменит цвет фона всех нечетных строк таблицы на оранжевыйВызов...

65