使用JavaScript,如果我有:设置一个变量等于另一个变量是否会导致内存中的Javascript数据重复?
var a = {'x':1, 'y':2};
var b = a;
console.log(a);
console.log(b);
...那么A和B都将打印同样的事情。我的理解是,a和b都指向内存中的相同数据。但是,如果我这样做:
a = {};
console.log(b);
...然后b
仍然有原来的对象,即使a
是一个空的对象了。我想确保如果我设置了一个像上面这样的变量,就不会有内存中对象的重复副本。 var b = a
。在某些语言中,给a
赋予新值会对b
产生连锁效应,因为它们都指向内存中的相同数据。
我很困惑,因为设置a = {}
也不会将b
设置为空对象。他们是否真的指向相同的数据直到我设置了a = {}
?
呃,如果a == b那么我们说的是复制的数据,还是我误会了你? –
说实话,我认为你已经回答了你自己的问题... – timothyclifford
嗯,我想是这样,但我只想确定,我希望有人会理解Javascript引擎或有更多的语言经验比我可以证实的。正如我所说的,设置'a = {}'不会将'b'设置为相同的事实让我感到困惑。 – RTF