JavaScript完整原型链图解

了解完整原型链对我们有什么帮助?

没什么帮助,装逼意义大于实用(doge)
好的吧,可能是我还是新手,没碰上这方面的需求

完整原型链图示

在这里插入图片描述
上图里,我们常用的部分是右下至右上的链,即从构造函数到构造函数原型对象再到null的部分。
而实际上,我们常见的FunctionObject也参与了原型访问链。
在这个图中,不管将哪个块当作实例对象,总有一个构造函数和一个原型对象和它组成三角关系
在这里插入图片描述
只有一个块例外,那就是Object.prototype。若Object.prototype.__proto__ === Object.prototype,则原型链访问将一直访问Object.prototype没有尽头,故底层规定Object.prototype.__proto__ === null,使原型链访问停止。
在这里插入图片描述

以下是4点总结:

  1. 所有构造函数都是Function的实例对象,包括Function自身,所有构造函数的__proto__都指向Function.prototype,即所有构造函数都继承Function的原型对象。
  2. 所有原型对象都是Object的实例对象,所有原型对象的__proto__都指向Object.prototype,即所有原型对象都继承Object的原型对象。
  3. Function可通过__proto__访问自己的原型对象,也可通过prototype访问自己的原型对象。这是因为Function本身也是Function的实例对象,把Function当成构造函数看,它可通过prototype访问原型对象,把Function当成实例对象看,它可通过__proto__访问原型对象。
    在这里插入图片描述
  4. Object.prototype.__proto__指向null,原型链访问到这里停止

如有不对,欢迎指正,
以上。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值