Я отдаю себе отчет о том, что это супер нубский вопрос, но тем не менее, я просидел час в попытках понять, почему глоабальный вар изменяется. Я делаю глобальный вар аргументом функции, на основе этого аргумента делаю новый лет, после этого изменяю только его. Почему глобальный вар тоже изменяется? Еще раз простите, но я даже не знаю, как загуглить вопрос правильно.
var bookList = ["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"];
function add(booklist, bookName) {
let meh = booklist;
meh.push(bookName);
return meh;
}
var newBookList = add(bookList, 'A Brief History of Time');
console.log(bookList);
консоль показывает измененный буклист.
Просто скопипащу
Обычные значения: строки, числа, булевы значения, null/undefined при присваивании переменных копируются целиком или, как говорят, «по значению».
С объектами – всё не так.
В переменной, которой присвоен объект, хранится не сам объект, а «адрес его места в памяти», иными словами – «ссылка» на него.
Таким образом у тебя в переменной meh
находится не скопированный массив, а ссылка на него и ты в него добавляешь элемент.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Имею скрипт, который добавляет картинки в localStorage в таком виде
Условие: Пользователь вводит номер месяцаВывести название времени года (весна, лето, осень, зима)
Имеется некоторый ветвистый JSON файлИз него осуществляется вывод пунктов меню