JavaScript 变量赋值

JavaScript variable assignment

可能这个问题已经存在了,但是我没有找到任何东西,因为我不知道如何调用这个问题。

我有一个对象函数,想把对象变量赋值给一个变量:

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]
}

如何在不改变其他变量的情况下改变局部变量?

当您调用 selection = this.selection 时,您正在复制 this.selection 值的引用。因此,当您更改局部变量 selection 时,您也在更改 this.selection

您必须从值中使用方法 slice() to create a new array。像这样:

selection = this.selection.slice();