var myObject = new Object();
var myObjectCopy = myObject;
myObject.Name = 'alav';
// logs Name alav on both variable
console.log(myObject, myObjectCopy);
myObject = null;
// logs myObject as null and myObjectCopy still has name 'alav' -> bcoz of reference copy
console.log(myObject, myObjectCopy);
下面不會複製相同的行爲。物件屬性的參考行爲
var objA = {property: 'value'};
var pointer1 = objA;
// update the objA.property, and all references (pointer1 & pointer2) are updated
objA.property = pointer1.property;
objA.property= null;
// logs 'null null' because objA, pointer1 all reference the same object
console.log(objA.property, pointer1.property);
爲什麼上述引用複製行爲不適用於對象的內部屬性(屬性here)?
objA.property = pointer1.property; - >是不是引用COPY?
你意識到'var myObjectCopy = myObject;'沒有真正複製任何東西,它只是兩個引用到完全相同的對象? – adeneo
是的當然是 –
而對於答案,沒有「json對象」之類的東西,JSON是一個帶有鍵和值的數據格式,通常是雙引號,常規的javascript對象絕不是JSON。 – adeneo