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

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

請教各位一個(gè)問題,求解答:js可以通過解構(gòu)后得到的屬性獲取這個(gè)被解構(gòu)的對象嗎?

請教各位一個(gè)問題,求解答:js可以通過解構(gòu)后得到的屬性獲取這個(gè)被解構(gòu)的對象嗎?

js可以通過解構(gòu)后得到的屬性獲取這個(gè)被解構(gòu)的對象嗎?//創(chuàng)建一個(gè)對象objletobj={a:"Bob",b:newDate().toLocaleTimeString(),c:function(){console.log(this.a)}}//結(jié)構(gòu)得到它的屬性alet{a}=obj//那么有沒有什么方法可以把這個(gè)完整的obj對象,通過解構(gòu)后的a,表示出來呢?//下面是我的一些愚蠢的嘗試console.log(a.__proto__)//[String:'']console.log(a.constructor)//[Function:String]console.log(a.__proto__.constructor)//[Function:String]還有我發(fā)現(xiàn)解構(gòu)賦值之后,你再對原對象的值進(jìn)行修改不會(huì)影響解構(gòu)得到的值let{a}=objobj.a="Jack"http://修改原對象的值console.log(a)//Bob所以說解構(gòu)賦值其實(shí)是重新創(chuàng)建了一個(gè)變量a,然后在解構(gòu)的同時(shí)把值復(fù)制過來了嗎?如果是這樣,那確實(shí)無法從a來重新獲得obj了。對了,js本身(或者說所有編程語言)就是無法用一個(gè)對象的某個(gè)屬性,重新又逆向得到這個(gè)對象的吧?求大牛解答一下
查看完整描述

2 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

從a獲得obj是肯定不行的
通過修改obj.a影響a是可以做到的。首先你要明白引用賦值和傳值賦值,
修改代碼
letobj={
a:[1,2,3],
b:{xx:1}
}
let{a,b}=obj
a.push(4)
b.xx=2;
console.log(obj.a)//[1,2,3,4]
console.log(obj.b)//{xx:2}
你如果企圖直接b=1來改obj.b的值,那是不可能的,因?yàn)橹癰和obj.b只是指向同一個(gè)內(nèi)存地址,當(dāng)b=1后,b指向的位置改變了,但是obj.b的位置沒變.而采用我上面代碼的方式,就是改變那個(gè)地址的值,所以他們都會(huì)同時(shí)改變.
                            
查看完整回答
反對 回復(fù) 2019-10-19
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

解構(gòu),不就是定義變量嗎。例如vara=obj.a,當(dāng)你改變obj.a時(shí)(此處a是普通數(shù)據(jù),非引用數(shù)據(jù)),a肯定不會(huì)被改動(dòng)的。
而且a沒有任何屬性指向原對象obj,你多看下js的數(shù)據(jù)結(jié)構(gòu)就了解了
                            
查看完整回答
反對 回復(fù) 2019-10-19
  • 2 回答
  • 0 關(guān)注
  • 406 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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