博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

从崛起到成功--JS的三大特征

Posted on 2018-03-22 15:54  TibetoString  阅读(179)  评论(0)    收藏  举报

JS三大特征 -- 继承、封装、多态

  继承篇

js 6大继承方法   

1.原型链      核心将父类的实例作为子类的原型      

特点:

1.非常纯粹的继承关系,实例是子类的实例,也是父类的实例 

2.父类新增原型方法/原型属性,子类都能访问到

3.简单,易于实现

 缺点: 

1.要想为子类新增属性方法,必须要在new Animal()这样的语句之后执行,不能放到构造器中。

2.无法实现多继承 

3.来自原型对象的引用属性是所有实例共享的

4.创建子类实例时,无法向父类构造函数传参

2.构造继承      核心:使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类(没用到原型) 

特点:

1.解决了子类实例共享父类引用属性的问题 

2.创建子类实例时,可以向父类传递参数 

3.可以实现多继承(call多个父类对象)

缺点:

1.实例并不是父类的实例,只是子类的实例

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

3.无法实现函数复用,每个子类都有父类实例函数的副本,影响性能

3.实例继承   核心 :为父类实例添加新特性,作为子类实例的返回  

特点:

1.不限制调用方式,不管是new子类()还是子类(),返回的对象具有相同的效果

缺点:

1.实例是父类的实例,不是子类的实例

2.不支持多继承

4.拷贝继承

5.组合继承

6.寄生组合继承