对于 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.如果您想更改 dest
和 ptr
引用的对象,仅以 dest
作为起点,你不能那样做。从 dest
开始,您无法做任何事情来改变 ptr
引用的对象。
关于javascript将对象复制到引用的内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50699222/