gpt4 book ai didi

javascript - 在 JavaScript 中恢复克隆的对象

转载 作者:行者123 更新时间:2023-11-30 00:03:48 24 4
gpt4 key购买 nike

我想存储“this”(全局)作用域的初始状态,如下面的伪代码所示:

<script>
var copiedObject = Object.create(this);
x="foo";
console.log(x); // foo
</script>

稍后使用 :

将其重置为该状态
<script>
this = Object.create(copiedObject);
console.log(x); // undefined since it's a copy before x was assigned
</script>

这是克隆它并在以后使用该克隆替换原始文件的正确方法吗?我想这样做而不是“刷新”我的 HTML5/JavaScript 应用程序的页面并清除来自 AJAX 的新添加功能。

最佳答案

在您发布的代码中,您正在制作对象的浅拷贝。所以 o1 的所有属性都通过引用复制到 o2,如果它们是复杂类型(对象)。什么意思:

 var o1 = { a: { b: 1 } },
o2 = Object.create(o1);

o1.a.b = 10;
console.log(o2.a.b) // 10

您需要做的是深拷贝 ( SO ),但您可能会看到,这会将您带入一个非常深的兔子洞。

关于javascript - 在 JavaScript 中恢复克隆的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39284554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com