javascript 原型和原型鏈

前言

  javascript 是基於原型繼承的語言,熟悉其原型規則以及原型鏈很是有必要。此隨筆記錄對原型和原型鏈、繼承的學習,以及對 instanceofnewclass 等關鍵字的理解。javascript

關於原型和原型對象

  原型是一個名爲 prototype 的屬性,每當建立一個函數時,該函數就會自帶該屬性,而該屬性指向一個對象,稱爲原型對象。而對於對象來講,每一個實例對象都有一個私有屬性(__proto__),其指向它的構造函數的原型對象(prototype),而每一個原型對象包含一個屬性(constructor),其指向對象的構造函數。參考自 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)。java

  區分如下幾個屬性:es6

  • prototype:由構造函數建立的對象都有該屬性,指向該對象的原型對象
  • __proto__:全部實例對象都有該屬性,指向它的構造函數的原型對象,例 a.__proto__ === A.prototype
  • constructor:全部原型對象都包含的屬性,指向對象的構造函數,例 A.prototype.constructor === A

繼承和原型鏈

ObjectFunction

兩個原型鏈

javascript 中的原型繼承

更多的深刻

instanceof

new

ES6的 class

相關文章
相關標籤/搜索