Меняется глобальная переменная js
объявляю переменную, но она меняется если изменить другую переменную, как сделать что бы переменная DefaultSetting оставалась в первоначальном виде
var setting, DefaultSetting;
setting = {
'mose' :1,
'mose2' :2,
};
DefaultSetting = setting;
setting['mose2'] = 7;
console.log(DefaultSetting);
Нужно DefaultSetting = {"mose": 1,"mose2": 2}
Ответы (1 шт):
Автор решения: Alexander Lonberg
→ Ссылка
В js объекты передаются по ссылке, и не копируют содержимое.
Такая запись
DefaultSetting = setting
... просто получила ссылку на setting
var setting, DefaultSetting;
setting = {
'mose' :1,
'mose2' :2,
};
// Скопировать на новый объект
DefaultSetting = Object.assign({}, setting);
setting['mose2'] = 7;
console.log(DefaultSetting);