原型链
前景介绍
在 js 中原型链主要是为了实现面向对象语言中继承的特性。
对于前端从业者来说,原型链确实是非常重要,具有划分性的知识,掌握好原型链的问题能让你更好的理解 js 的原型继承机制。
原型链图示
原型链的学习从一张图开始可能更好理解,也应该在学习后能够自己画出来。
这张图可以说是根据几个主要的特点来画出来的:
- 任意对象都有自己的原型对象,在
js中万物皆对象,因此函数也是对象。也就是__proto__属性。 - 只有函数有
prototype属性。 __proto__链的尽头是Object.prototype--> 这个对象的__proto__属性是null。- 原型链就是顺着
__proto__属性向上寻找的路径。主要是用于继承。 - 关于上层的
Function和Object这两个都是构造函数,互相为对方的实例,JS 引擎在初始化时硬编码实现的,不是靠代码递归创建的。
