前言
快节奏的世界,大家都想要快,因此我把构造函数与原型链分文章说明。
想具体了解构造函数与原型、原型链之间的关系可以结合另一篇文章
构造函数和原型及两者作用
本文章说明原型链中的关系
构造函数、函数原型与实例对象原型的关系——图解
构造函数、原型对象与对象原型的关系定论:
-
任何对象必有__ proto __属性.(包括简单类型对象,var i=1;)
特例:(Object.prototype属性对象)和(Object对象.proto属性对象)没有proto属性. - 任何函数必有prototype原型对象
此时,由第一个定论,函数的原型对象一定存在 __ proto __属性,那么在原型链里面,存在一个Object函数,而函数的原型对象的 __ proto __指向的是Object函数对象的prototype
Person.prototype.__ proto __===Object.prototype
由因为Object.prototype
是Object的原型对象,因此它的construtor
指向Object本身,即
Object.prototype.construtor===Object
而同时Object的原型对象又符合第一个结论的特例,即Object.prototype.__ proto __
不存在proto属性,指向的是空(null
)
执行顺序
就近原则:在查找方法的时候,如果执行实例对象方法,则先查找this的方法;后通过原型链中 __ proto __的线路逐步查找,直到找到为止。
最后加上Object函数与Function的关系,如下图所示 完整原型链关系图
网友评论