JS高级程序设计学习笔记——继承

  我们知道,在OO语言中,继承可分为接口继承和实现继承。而ECMAScript的函数没有签名,不能实现“接口继承”,只能通过原型链实现“实现继承”。

  在学习了各种继承模式之后,简单总结一下各种继承模式的特点:

  1、原型链继承

    问题:子类实例共享超类属性、不能向超类的构造函数传递参数

  2、借用构造函数

    思想:子类构造函数调用超类构造函数,使用call或apply,那么在实例化子类对象时就会有不同的对象实例,解决了共享超类属性的问题

  3、组合继承(原型链+借用构造函数)

    问题:会两次调用父类构造函数,同时还在子类的prototype中添加了多余的属性

  4、寄生式继承

    思想:与寄生构造函数和工厂模式类似,任何能够返回新对象的函数都适用于此模式,缺点是不能做到函数复用

  5、寄生组合式继承

    思想:集寄生式继承与组合继承的优点于一身,是实现基于类型继承的最有效方式

  

posted @ 2016-04-10 15:19  呆呆流云  阅读(254)  评论(0编辑  收藏  举报