美文网首页前端开发那些事
原型链以及方法执行顺序

原型链以及方法执行顺序

作者: Nice先生的狂想曲 | 来源:发表于2019-10-17 23:59 被阅读0次

    前言

    快节奏的世界,大家都想要快,因此我把构造函数与原型链分文章说明。
    想具体了解构造函数与原型、原型链之间的关系可以结合另一篇文章
    构造函数和原型及两者作用

    本文章说明原型链中的关系


    构造函数、函数原型与实例对象原型的关系——图解

    构造函数、原型对象与对象原型的关系

    定论

    1. 任何对象必有__ proto __属性.(包括简单类型对象,var i=1;)
      特例:(Object.prototype属性对象)和(Object对象.proto属性对象)没有proto属性.
    2. 任何函数必有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的关系,如下图所示 完整原型链关系图

    相关文章

      网友评论

        本文标题:原型链以及方法执行顺序

        本文链接:https://www.haomeiwen.com/subject/nxsmmctx.html