javascript将对象复制到引用的内存中

标签 javascript object reference

对于 JavaScript 中名为 Dest 的对象类型的给定变量,我希望将其引用更改为名为 Value 的对象的值。假设有一个神奇的语句 SetDestAs(Dest, Value) 可以执行此操作

例如

var dest = { a : 3, b : 3};
var ptr = dest;
// ptr.a === 3;
SetDestAs(dest, {a  : 0, b : 3 });
// dest.a === 0
// ptr.a === 0;

我如何实现SetDestAs?

我不想具体做的是让 SetDestAs 更改 dest 引用的对象。在上面的示例中,将 pessis 更改也保留到 ptr 中非常重要。

最佳答案

很难说出你想做什么,所以有两个答案:

1.您可以更改 dest 引用的对象的属性:

Object.assign(dest, {a: 0, b: 3});

...这就是我认为你想做的。示例:

var dest = { a : 3, b : 3};
var ptr = dest;
console.log(ptr.a);  // 3
Object.assign(dest, {a: 0, b: 3});
console.log(dest.a); // 0
console.log(ptr.a);  // 0

2.如果您想更改 destptr 引用的对象,仅以 dest 作为起点,你不能那样做。从 dest 开始,您无法做任何事情来改变 ptr 引用的对象。

关于javascript将对象复制到引用的内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50699222/

相关文章:

visual-studio - 未从引用的项目复制 NuGet 包

c++ - 我应该用 &this 做什么?

javascript - javascript 如何提醒 css 值?

javascript - 如何在 JavaScript 中转义反斜杠?

javascript - 如何使 Material ui dropzone 区域不允许重复?

ruby - 如何使用自定义对象从数组中删除重复项

javascript - 使用 requestAnimationFrame 的 JS 游戏循环 - 对象函数仅调用一次

Java - 类型对象的链表的链表

javascript - 用一个正则表达式解析复杂的字符串

c++ - constexpr 引用有什么用吗?