Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVASCRIPT:分配给同一对象的另一个方法的方法-更改第一个方法的值会更改第二个方法_Javascript_Object_Methods_Variable Assignment_Slice - Fatal编程技术网

JAVASCRIPT:分配给同一对象的另一个方法的方法-更改第一个方法的值会更改第二个方法

JAVASCRIPT:分配给同一对象的另一个方法的方法-更改第一个方法的值会更改第二个方法,javascript,object,methods,variable-assignment,slice,Javascript,Object,Methods,Variable Assignment,Slice,因此,我有一个名为game的javascript对象,它有两种方法: function game() { this.TxtRevealed = new Array(); this.TxtRevealedBackup = new Array(); [...] } 现在,在一个对象之外,我给一个对象分配两个: game.TxtRevealedBackup = game.TxtRevealed; 过了一会儿,我改变了游戏。txt显示了(我使用slice函数从中剪切一些值)。 现在发

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

function game() {
    this.TxtRevealed = new Array();
    this.TxtRevealedBackup = new Array();
[...]
}
现在,在一个对象之外,我给一个对象分配两个:

game.TxtRevealedBackup = game.TxtRevealed;
过了一会儿,我改变了
游戏。txt显示了
(我使用
slice
函数从中剪切一些值)。 现在发生了我不想发生的事情:自动
game.txtrevaledbackup
也会更改
game.txtreved
的新值

我希望
game.txtrevaledbackup
game一样。txtreved
正在分配任务。它的工作原理就像
game。txtrevaledbackup
指向
game所表示的值。txtreved
连续显示,而不是赋值时的值

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


Kalreg.

对象通过引用工作。如果要克隆对象,请参见此图。

是的,对象的工作方式如下。顺便说一句,
slice
不会改变数组;最可能的意思是
splice
。大多数面向对象编程语言都是这样工作的。对象表示为引用。“如何让它工作我希望”你可以克隆这个对象。我应该做些什么来实现我的目标?@Oriol:很好的发现。我希望有比这更简单的解决方案,比如在变量名中添加&或其他什么。但是如果您使用的是jQuery,您可以使用类似于
var cloned=$.extend({},original)的东西