JS原型与原型链的理解

每个对象都有一个隐式原型,函数也是对象所以函数也有。隐式原型指向了构造它的函数的原型对象。
函数除了有隐式原型外还有个显示原型prototype,指向了这个函数的原型对象。

tu.png

原型

  • 无论什么,只要创建了一个新函数就会根据一组特定的规则为该函数创建一个Prototype属性,这个属性指向的函数的原型对象

函数fn的prototype指向该函数的原型对象

原型对象

  • 所有的原型对象都会自动的获得一个constructor属性,它默认指向prototype属性所在的函数.

fn.prototype.constructor指向构造函数自己

实例

  • 构造函数通过new关键字创建了一个实例, 实例有个属性__proto__指向了原型对象.
    实例的__proto__属性指向构造函数的原型对象

简单总结:每个构造函数都有一个原型对象,每个原型兑现都有一个指针指向构造函数,每个实例都有一个指向原型对象内部的指针


原型链

  • 原型链是实现对象继承的主要方法
  • 基本思想: 利用原型让一个引用类型去继承另外一个引用类型的属性和方法.
  • 如果我们让原型对象等于另外一个类型的实例,那么此时的原型对象必然也包含一个指向另一个原型对象的指针,假如另一个原型对象又是另一个类型的实例,那么上述的关系是依然存在的,这样就形成了原型链~
  • 原型链的顶端是Object.__proto__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值