也许这个问题已经存在,但我找不到任何东西,因为我不知道怎么称呼这个问题。
我有一个对象函数,想要将对象变量赋值给变量:
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]
}
如何在不改变其他变量的情况下更改局部变量?
答案 0 :(得分:2)
当您致电selection = this.selection
时,您正在复制this.selection
值的引用。因此,当您更改本地变量selection
时,您也正在更改this.selection
。
您必须使用值中的slice()
to create a new array方法。像这样:
selection = this.selection.slice();