使用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