彻底了解原型与原型链

彻底了解原型与原型链
即三个磨人的属性:prototype、proto、constructor
咱先从每一个入手
1.prototype
prototype是函数才有的属性,注意对象没有在这里插入图片描述
函数的prototype会指向一个带有constructor的对象
2.proto
函数的__proto__要追溯到原生Function对象,即函数的__proto__等于Function的prototype,
来解释一下:
平是咱们函数声明都是 function a(){} 的方式,由于函数声明其实是 a=new Function();
这样来说就通了
对象的__proto__即被实例化的函数的prototype
字面量的话 如 :
let obj = {} obj.proto__则为Object.prototype
构造的话 如:
function a (){} let b = new a()
b.proto === a.prototype
总结一句话:对象的__proto__指向被实例化的函数的prototype,因为函数也是一种对象
3.constructor
有上面的__proto
,constructor就不一一区分
总结一句话:对象的constructor指向被实例化的函数,因为函数也是一种对象
如:
function a (){}
let b = new a()
b.constructor === function a (){}
原型链
即从实例化对象到函数原型逐层查找的过程在这里插入图片描述
如:在这里插入图片描述
查找constructor过程就是原型链
在这里插入图片描述
当查找到原生Object的__proto__查不到是则为null
在这里插入图片描述
大家发现很多原生方法使用也是原型链查找。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值