6.3一图读懂JavaScript原型链--JavaScript高级程序设计笔记

本文深入解析JavaScript中的继承机制,特别是组合继承方式。详述了实例与类之间的连接,包括__proto__指针和constructor属性的作用,以及如何通过构造函数和原型链实现属性和方法的继承。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 实例instance有__pro__指针指向类的原型SubType.prototype;
  2. 实例instance有constructor指针指向SuperType,实际上就是SuperType实例constructor的指向;
  3. SubType.prototype是SuperType的一个实例,即SubType的原型为SuperType的一个实例;
  4. SubType.prototype有一个__pro__指针指向SuperType.prototype
  5. SubType.prototype有一个constructor指针指向SuperType
  6. SuperType.prototype有一个constructor指针指向SuperType
  7. SuperType.prototype有一个__pro__指针指向Object.prototype

 

对于原型是非其他类型实例的,constructor默认指向自身,__pro__指向Object.prototype;

--原型的原型是父类的原型,即Object.prototype,constructor指向自身

对于原型是其他类型的实例,constructor指向父类(因为是父类的一个实例,实际上也是指向自身),__pro__指向父类原型。

--原型的原型是父类的原型,constructor实际上还是指向自身。

因此可以用一句话总结:原型的__pro__是父类的原型,constructor指向自身。

 

最常用的继承:组合继承

function SuperType(name){
    This.name=name;
    This.colors=[‘red’,’blue’]

}

Function SubType(name,age){
    SuperType.call(this,name);
    This.age = age;
}

SubType.prototype = new SuperType();
SubType.prototype.constructor=SubType;
SubType.prototype.sayAge = function(){};
Var instance = new SubType(‘张三’,24);

特点:

  1. 子类构造函数中调用父类构造函数,并改变this的指向
  2. 按照第一点执行之后,父类的属性会变成子类的属性
  3. 子类通过原型链的方式继承父类,即prototype为父类实例
  4. 将子类原型constructor指向自身
  5. 子类原型增加新的方法
  6. 新建的子类实例将各自含有父类的属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值