JavaScript变量赋值

时间:2017-02-13 14:39:14

标签: javascript variables object 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]
}

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

1 个答案:

答案 0 :(得分:2)

当您致电selection = this.selection时,您正在复制this.selection值的引用。因此,当您更改本地变量selection时,您也正在更改this.selection

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

selection = this.selection.slice();