js继承易懂

1.1什么是继承
  js是一个面向过程,不是面向对象 ;

  而 js继承是面向对象的一大特征:有3大特征 (1.封装,2.多态,3.继承)

1.封装:js没有继承概念,通过构造函数创建父类, 通过函数封装思想收敛业务

2.多态:同一个函数可以接收不同参数

3.继承:分为es5和es6

1.2继承有几种
   1.原型链继承:父类的实例作为子类的原型

 优点:

易实现,父类新增实例与子类属性都能访问
 缺点:

子类实例时,不能向父类构造函数中传参数

不能多继承

可以在子类中增加实例属性,如果要新增加原型属性和方法需要在new 父类构造函数的后面

 

2.够造函数继承 : 复制父类的实例属性给子类

优点:

子类构造函数向父类构造函数中传递参数

可以实现多继承(call或者apply多个父类)

缺点:

无法复用

不能继承原型属性/方法,只能继承父类的实例属性和方法

 

3.组合继承:调用父类构造函数,继承父类属性,通过将父类实例作为子类原型,实现函数复用

优点:

函数复用

不存在引用属性问题

可以继承属性和方法,也可以继承原型的属性和方法

缺点:

由于调用了两次父类,所以产生了两份实例


 4.es6中class继承:首先利用class构造一个父类,然后利用extends与super实现子类继承

 

优点:

代码量少,易懂

1.3 使用继承有什么好处,为什么要用继承?
1.减少代码量,减少代码冗余

2.可以属性和方法的共用

3.减少了内存使用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值