var yideng = {
n:1
};
yideng.x=yideng={
n:2
};
console.log(yideng.x)
//undefined
//注意運算符的優先級
//yideng.x=yideng={n:2}這里非常特殊,因為“.“的優先級要高于”=“
//所以這里的順序就是
//1.先創建了一個x屬性,值為undefined,掛在yideng下面
//2.yideng的指向被改變,指向了{n:2}
//3.剛才創建的x屬性被賦值為{n:2}
//4.此時yideng的指向已經被改變了,不再指向原有的對象,所以這里的yideng.x指向后來的對象,
//5.后來的對象里面只有{n:2}
//6.所以x屬性是undefined
//下面就來驗證一下我們的想法(object是引用類型,是利用指針來指向堆里面的數據的)
var yideng = {
n:1
};
var yideng1 = yideng;//yideng1和yideng都指向n:1這里
yideng.x = yideng = {
n:2
};
console.log(yideng.x)//undefined
console.log(yideng1.x)//2
.png
對于引用類型的復制,只是指針的復制,我們看看紅寶書里面是怎么說的
