2点快速理解JavaScript原型对象和原型链

(1)JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。

比如下图最下面的循环,Star构造函数拥有一个原型对象(Star.prototype),Star的实例ldh刘德华,Star的构造函数(Star.prototype)为模板,从里面继承了sing和act的属性。console.log(ldh.__proto__),输出ldh的原型,可以知道它是Star.prototype。

(2)讲第一点的时候我们说过,每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。原型对象 ∈ 对象,对象拥有原型对象 => 原型对象拥有原型对象,并从中继承方法和属性,一层一层、以此类推。这种关系常被称为原型链 (prototype chain),它解释了为何一个对象会拥有定义在其他对象中的属性和方法。

还是上面那张图,Star这个原型,也有自己的原型模板,它是以Object为原型,继承了Object的属性和方法(明星Star属于事物Object)

再往上推,Object这个原型的原型是null,继承null的属性和方法(天下万物有生于无)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值