亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

實例中為什么不能修改原型基礎類型的值?

實例中為什么不能修改原型基礎類型的值?

暮色呼如 2018-07-26 13:27:56
child原型繼承father 一個this.name='father' 一個this.play=[1,2,3]結論我知道,以前沒深究,現在想想感覺有點懵,根據我的理解:child1 和 child2實例化的時候除了有child的內容,應該還有一個_proto_指針,指向內存上的同一個區域1(原型father所在地).father的play指針指向內存另外一片區域2的[1,2,3],所以子類共享它,這個好理解但是改child1.name的時候,我認為改的是區域1,name區段上的內容,由于child2的_proto_還是指向這片區域,那么child2.name也應該是訪問區域1,name區段上的內容,那么也應該被改了呀?不知道理解哪里有問題,求指點訪問原型中基本值類型時訪問的是它的映射副本,對基本值類型的修改只在這個實例下有用這是知乎上的一個人的答案,這個映射副本怎么理解,不懂child1,2訪問的原型都是同一個,不管是引用類型,還是基礎類型,改變以后,另外一個再訪問肯定也是改變了的呀。除非說是child1訪問的是原型對象的前拷貝1,child1訪問的是原型對象的前拷貝2,那我就懂了,但是這種情況下child1._proto_===child1._proto_為什么成立?前拷貝1===前拷貝2?還是說這個_proto指的是僅僅是原型,不是原型的淺拷貝
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

實例雖然可以訪問原型中的值,但不能通過對象實例重寫原型中的值,如果我們在實例中添加了一個屬性,而該屬性與原型中的值同名,
那么就會在該實例中創建該屬性,該屬性就會屏蔽原型中的同名屬性(原型中還是存在的,只不過在訪問時會先訪問實例的屬性),下面有圖片便于理解

https://img1.sycdn.imooc.com//5b5ec08600016ea908710492.jpg

查看完整回答
反對 回復 2018-07-30
  • 1 回答
  • 0 關注
  • 728 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號