第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

同一個對象的引用如何不能相等?

同一個對象的引用如何不能相等?

catspeake 2022-12-29 15:44:00
例如。:let userOne = {  name: "Test",  surname: "Test"}let userTwo = {  ...userOne}console.log(userOne === userTwo); // false但是,例如:console.log(userOne.name === userTwo.name); // true所以 userOne 和 userTwo 是同一對象的兩個引用,但console.log(userOne === userTwo);返回 fasle。為什么?修改: 好的。在前面的例子中有兩個對象。但是這個呢:let userOne = {  name: "Test",  surname: "Test surname",  sizes: {    width: 200,    height: 200,  }}let userTwo = {  ...userOne}userTwo.sizes.width = 50;alert(userOne.sizes.width); // 50所以 userOne 和 userTwo 是同一個對象的引用。但:alert(userOne == userTwo);// false那么這兩個引用不指向同一個對象?
查看完整描述

4 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊

因為你不是同一個對象的引用!它們是(表面上)看起來相同的兩個對象。


想想任何一家商店,你從貨架上拿了一件商品,它后面有十幾種相同的商品。僅僅因為它們看起來相同并不能使它們成為相同的項目。


let userTwo = userOne;創(chuàng)建對同一項目的第二個引用。


let userTwo = {...userOne}創(chuàng)建一個新對象并將擁有的和可枚舉的屬性復(fù)制到該新對象。


在前面的例子中有兩個對象。但是這個呢:


let userOne = {

 name: "Test",

 surname: "Test surname",

 sizes: {

   width: 200,

   height: 200,

 }

}


let userTwo = {

 ...userOne

}

userTwo.sizes.width = 50;


alert(userOne.sizes.width); // 50

在這里userOne.size === userTwo.size。所以如果你改變一個......另一個是相同的。


但是userOne !== userTwo。


你和你的兄弟姐妹可以有同一個父親,如果他失去了一只手臂,那么這不僅適用于你們中的一個。但這并不能使您和您的兄弟姐妹成為同一個人。


查看完整回答
反對 回復(fù) 2022-12-29
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗 獲得超7個贊

它們不是同一個對象。


您有兩個不同的對象,但第二個對象具有第一個對象的屬性,并使用spread syntax復(fù)制到其中。


如果第二個對象中包含更多屬性,則演示起來會更清楚。


let userOne = {

  name: "Test",

  surname: "Test"

}


let userTwo = { ...userOne,

  yearOfBirth: 2000

};


console.log({

  userOne

});

console.log({

  userTwo

});

如您所見,附加值被添加到第二個對象而不是第一個對象。



查看完整回答
反對 回復(fù) 2022-12-29
?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗 獲得超8個贊

es6 傳播運(yùn)算符{...userOne},創(chuàng)建對象的副本userOne并將其存儲在不同的內(nèi)存位置,這也等于此,

let userTwo = Object.assign({}, userOne);

但是如果你將對象分配給另一個,

let userThree = userOne; 這將返回 true。

另一方面,這只比較值

userOne.name === userTwo.name所以它返回 true。



查看完整回答
反對 回復(fù) 2022-12-29
?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗 獲得超6個贊

由于您在 equals() 方法中給出的邏輯,默認(rèn)情況下它們是相等的。



查看完整回答
反對 回復(fù) 2022-12-29
  • 4 回答
  • 0 關(guān)注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號