JavaScript原型及原型链

JavaScript中原型及原型链

函数原型对象:

  • 每个函数对象中都存在一个prototype属性,该属性默认指向一个空的Object对象,即函数原型对象;同时该函数原型对象上有一个属性constructor,指向该函数对象。
  • 可以在函数原型对象上面添加属性和方法,但是一般只在函数原型对象上面添加方法,通过在函数原型上面添加属性和方法后,该函数的所有实例对象自动拥有该属性和方法。
    图解:
    prototype&constructor

显式原型和隐式原型

  • 每个函数对象都有一个prototype属性,即显式原型。
  • 当创建了一个构造函数的实例对象后,该构造函数的实例对象会产生一个__proto__属性,即隐式原型。
  • 对象的隐式原型的值为其对应构造函数的显式原型的值,即显式原型和隐式原型指向的是同一个对象。
    内存结构图解:
    prototype&__proto__

原型链

  • 当访问一个对象的属性和方法时,会现在自身寻找,如果没有找到,会沿着原型链在隐式原型对象中寻找,如果找到该属性和方法,返回该属性和方法,如果没有找到,会返回underfined。
    图解:
    原型链
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值