彻底搞懂JS原型链

原型链

原型,构造函数,实例对象的关系

  • Object既是对象又是函数。
  • 内置匿名函数:一个函数生成了Object和Function。f(){native code}
  • 根源原型对象:就是一个对象,里边有根源的一些方法,toString,valueOf,constructor等.Object.prototype

Object的原型链

Object.prototype//根源原型对象
Object.prototype.__proto__//null
Object.__proto__//内置匿名函数f(){native code}
Object.__proto__.__proto__//根源原型对象

Object的原型关系

Function的原型链

Function.__proto__//f(){native code}
Function.prototype//f(){native code}
Function.__proto__.__proto__//根源原型对象

Function的原型关系
所有的函数都是Function的实例,所有的对象都起源于Object(函数也是对象)。

汇总之后的总的原型图

Object和Function的原型关系

函数的原型链

//以Number为例子
Number.__proto__//Function.prototype就是内置匿名函数
Number.prototype//Number可以看做是Object的一个实例的构造方法,所以Number.prototype

Number的原型关系

一般对象的原型链

一般对象是new关键字生成的new关键字内部新建了对象,然后设置对象的原型是函数的原型对象。
new关键字做的操作

const a = new Object();
a.__proto__//就是Object.prototype
a.prototype//undefined,普通对象只继承Object,不是函数,没有原型对象。

普通对象的原型链

a instanceof b判定依据

a的原型链上是否有b,有则true

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值