JAVASCRIPT:分配给另一个方法的方法与第一个方法的变化值相同,改变第二个方法

JAVASCRIPT: method assigned to another method of same changing value of first changes second one

本文关键字:方法 第二个 改变 变化 分配 另一个 JAVASCRIPT 第一个      更新时间:2023-09-26

所以我有一个名为game的javascript对象,它有两种方法:

function game() {
    this.TxtRevealed = new Array();
    this.TxtRevealedBackup = new Array();
[...]
}

现在,在一个对象之外,我分配了一个和另一个:

game.TxtRevealedBackup = game.TxtRevealed;

过了一段时间,我更改了game.TxtRevealed(我使用slice函数从中剪切一些值)。现在发生了一些我不打算发生的事情:game.TxtRevealedBackup也会自动更改为game.TxtRevealed的新值。

我希望game.TxtRevealedBackupgame.TxtRevealed在分配时一样。它的工作方式就好像game.TxtRevealedBackup指向由game.TxtRevealed连续表示的值,而不是它在赋值时刻的值。

为什么会发生这种情况,以及如何让它发挥我所期望的作用?

Kalreg。

对象通过引用工作。如果您想克隆对象,请查看此答案。