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