通俗易懂理解原型链

什么是原型和原型链

假设有一个普通对象x={ }x有一个隐藏属性__proto__,这个属性会指向Object.prototype,即x.__proto__ === Object.prototype ,此时,Object.prototype就是x的原型。__proto__这个隐藏属性的作用就是指向他的原型。

假设有一个数组对象a=[ ],他也有上面的隐藏属性,此时a.__proto__ === Array.prototype,与此同时,Array.prototype也有隐藏属性,即Array.prototype.__proto__ === Object.prototype

这样,数组a就有两层原型:a的原型是Array.prototype,a原型的原型是Object.prototype,这三者之间通过__proto__这个隐藏属性形成了一个链条

a ===> Array.prototype ===> Object.prototype

这就是原型链

如何创建一条原型链

例如在对象a身上创建一条原型链,达到类似a.__proto__ = ?的效果

object.create

a = Object.create(f)

构造函数

a = new 构造函数()

原型链的作用

在没有class的情况下实现继承

以上面的原型链为例:

  • aArray的实例,a拥有Array.prototype的属性
  • Array继承了Object
  • aObject的间接实例,a拥有Object.prototype的属性
  • 这样一来,a既拥有Array.prototype的属性,又拥有Object.prototype的属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值