javascript 是基於原型繼承的語言,熟悉其原型規則以及原型鏈很是有必要。此隨筆記錄對原型和原型鏈、繼承的學習,以及對 instanceof
、new
、class
等關鍵字的理解。javascript
原型是一個名爲 prototype
的屬性,每當建立一個函數時,該函數就會自帶該屬性,而該屬性指向一個對象,稱爲原型對象。而對於對象來講,每一個實例對象都有一個私有屬性(__proto__),其指向它的構造函數的原型對象(prototype),而每一個原型對象包含一個屬性(constructor),其指向對象的構造函數。參考自 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)。java
區分如下幾個屬性:es6
a.__proto__ === A.prototype
A.prototype.constructor === A
instanceof
new
class