Возможно, вопрос уже существует, но я ничего не нахожу, потому что не знаю, как назвать эту проблему.Назначение переменной JavaScript
У меня есть функция объекта и хочет назначить переменный объект в переменный:
this.myFunction = function() {
var selection; // internal variable
selection = this.selection; // both are [0,0]
console.log(this.selection); // result: [0,0]
selection[0] = 500; // set internal variable[0] 500
console.log(selection); // result: [500,0]
console.log(this.selection); // result: [500,0] <-- expected: [0,0]
}
Как я могу изменить локальные переменный без изменения других?
Вам необходимо создать копию массива. –
Назначение javascript всегда по ссылке для объектов, если вы хотите также причину, почему – Kaddath
'Массивы - это объекты типа списка, у прототипа которых есть методы для выполнения операций обхода и мутации.' Это означает, что всякий раз, когда вы назначаете массив другой переменной, это просто мутатор. Это не глубокий клон. –