js原型你真的知道吗
最开始学习js的时候也学过原型,但是当时感触就是这东西也就那样(内心os:什么鬼)。现在回想,真的彻彻底底的掌握了原型了吗?
说到js继承,那是肯定绕不开原型的,那什么是原型呢?
MDN是这么描述的:js只有一种结构,对象。(ps:也就是我们常听说的一句话:万物皆对象)每个实例对象都有一个私有属性(__proto__),指向它的构造函数的原型对象(prototype)。该原型对象也有一个自己的原型对象(__proto__),层层向上直到一个对象的原型对象为null。规定:null没有原型,并作为这个原型链的最后一个环节。
几乎所有的js中的对象都是位于原型链的顶端的Object的实例。
记住以下几点,可以很好的理解原型:
1. js 一切皆对象;
2. 所有的对象都有一个__proto__属性,指向它的原型对象; 原型对象是一个拥有prototype属性的对象;
3. 原型对象默认都有一个constructor属性,指向它的构造函数;
便于理解,附上一张手绘图
更详细的讲解,烦请移步 再见js原型