- 對象直接量也會隱式的調(diào)用 Object 來構造實例必搞。
- 默認的情況下,空的對象只有預設的屬性與方法恕洲。
- 對象并沒有原型,而是構造器有原型梅割。對象只有“構造自某個原型”的問題霜第,并不存在“持有某個原型”的問題。
- JS原型復制:使用寫復制户辞,并把復制的粒度從原型細化到成員泌类。
- JS成員列表:
- 保證在讀取時首先被訪問到底燎。
- 如果在對象中沒有指定屬性,則嘗試遍歷原型鏈双仍。
- 存取實例中的屬性,效率比存取原型的高殊校。
- 修改原型是 JS 中最常用的構建對象系統(tǒng)的方法。好處是可以在實例創(chuàng)建之后動態(tài)的影響這些實例为流。
-
‘name' in obj
in 方法會檢查原型鏈。 -
原型繼承
與原型修改
:前者關注繼承對象的層次敬察,后者關注具體對象實例的行為的修改。
- 設計觀念:將對象(類)的繼承關系莲祸,與對象(類)的行為分離。這與
基于類繼承的對象
存在本質(zhì)的不同锐帜。 - 原型修改是動態(tài)語言的特性。
- 原型繼承的本質(zhì) 從無到有:
- 設計觀念:將對象的繼承關系與對象的行為分離允瞧。理論上我們可以先構建一個沒有任何成員的類關系的繼承系統(tǒng),然后通過不斷的修改原型述暂,從而獲得一個完整的系統(tǒng)痹升。
- 繼承來的原型成員:
子類從父類繼承對象性質(zhì)時畦韭,也會繼承成員的可讀寫性與可見行
- JS 不同的引擎對這句話有不同解釋: 一種是繼承成員的名字(即維護一個
成員名
列表,成員名
具有特殊性質(zhì))艺配。一種是繼承成員的性質(zhì),成員可以被實例覆蓋绳锅。