【发布时间】:2016-07-11 08:41:37
【问题描述】:
所以我有一个名为game的javascript对象,它有两种方法:
function game() {
this.TxtRevealed = new Array();
this.TxtRevealedBackup = new Array();
[...]
}
现在,在一个对象之外,我分配一个两个:
game.TxtRevealedBackup = game.TxtRevealed;
一段时间后,我更改了game.TxtRevealed(我使用slice 函数从中删除了一些值)。
现在发生了一些我不希望发生的事情:game.TxtRevealedBackup 也会自动更改为 game.TxtRevealed 的新值。
我希望game.TxtRevealedBackup 与分配时的game.TxtRevealed 相同。就好像game.TxtRevealedBackup 连续指向由game.TxtRevealed 表示的值,而不是它在赋值时的值。
为什么会发生这种情况以及如何使其正常工作?
卡雷格。
【问题讨论】:
-
是的,对象是这样工作的。顺便说一句,
slice不会改变数组;很可能你的意思是splice。 -
大多数面向对象的编程语言都以这种方式工作。对象表示为引用。 “我希望如何让它工作”你可以克隆对象。
-
我应该怎么做才能实现我的目标?
-
@Oriol:很好的发现。
标签: javascript object methods variable-assignment slice