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

时间:2018-06-05 11:41:56

标签: javascript object reference

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

E.g。

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所引用的对象。在上面的例子中,变化也会变成ptr非常重要。

1 个答案:

答案 0 :(得分:1)

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

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引用的对象。