原型链


原型链:利用原型让一个引用类型继承另外一个引用类型的属性和方法

原型链是继承的主要方法
简单讲一下构造函数,原型和实例的关系
> 每一个函数都有一个原型对象,原型对象都包含一个指向自己的构造器指针,而实例都包含一个指向原型对象内部的指针。如果让原型对象等于另一个类型的实例,结果会怎么样呢?显然,此时的原型对象将包含一个指向另一个原型对象的指针,相应的,另一个原型中也包含着一个指向另一个构造函数的指针。假如另一个原型又是另一个类型的实例,那么上述关系依然成立,如此层层递进,就构成了实例与原型的链条。


由于proto是任何对象都具有的属性,而js中万物皆对象,会形成一条一条__proto__连接起来的链,并且最终都是指向null.


  1. constructor是构造函数prototype(原型属性中的属性),他指的是构造函数本身。

  2. __proto__指的是对象的原型对象,但是__proto__是一个非标准属性。

  3. prototype是构造函数的原型属性;也就是我们常说的原型

  4. 我们在设置prototype时只能给构造函数设置,对象上是不可以设置的,如果我们想用对象
    来获得构造函数中的prototype中的值只能通过非标准属性(__proto__)来获得,但是不建议使用,只建议在测试中使用__proto__属性

  5.  这是一个非常复杂的原型链,其中在原型链中最饱受争议的就是Object创建了Function,还是Function创建了Object,我们如果沿着原型链展开Function和Object会发现他们是无群无尽的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值