在页面加载时,我创建了两个JavaScript对象:
例如:
objDemo1
和objDemo1Backup
,其中后者只是第一个对象的精确副本。例如:
objDemo1 {
sub_1 = { something: 123, somethingElse: 321 },
sub_2 = { something: 456, somethingElse: 654 }
}
我可以修改sub_
中的值,还可以添加/删除新的sub_
,但是我只编辑的对象是objDemo1
。也就是说,我从不更改objDemo1Backup
。
我有一个重置按钮,当单击时,将objDemo1
重置为页面最初加载时的状态(即objDemo1 = objDemo1Backup
)。这就是我的问题所在。
如何将objDemo1
设置为objDemo1Backup
?
我尝试过:
objDemo1 = objDemo1Backup;
和
objDemo1 = null;
var objDemo1 = objDemo1Backup;
......以及类似的变体,但似乎都不起作用。有什么想法吗?
- 注意:我可以确认在重置的时候,
objDemo1Backup
与我创建它时完全相同,而objDemo1
已经发生了变化。 - 我的代码肯定会触发“重置”功能,在那里我尝试过
objDemo1 = objDemo1Backup
...我只是无法弄清楚替换对象的语法。
objDemo1
和objDemo1Backup
同时指向同一对象,因此当您更改其中一个时,两个都会被更改。这可能看起来不太直观,但这是Javascript的工作方式。请谷歌搜索“javascript克隆对象”了解更多详情。 - Shmiddty