Javascript高级程序设计——面向对象小结
ECMAScript支持面向对象编程,对象可以在代码执行时创建,具有动态扩展性而非严格意义上的实体。
创建对象方法:
- 工厂模式:简单的函数创建引用类型
- 构造函数模式:可以创建自定义引用类型,可以想创建内置对象一样使用new操作符,构造函数的函数无法得到复用,不能共享函数。
- 原型模式:利用构造函数的prototype属性来指定共享的属性和方法,组合使用构造函数和原型模式时,使用构造函数定义实例属性,原型模式来共享方法。
javascript主要通过原型链实现继承,将一个类型的实例赋值给另一个原型对象实现继承。这样子类就可以访问超类的方法和属性。要注意原型链共享所有继承的属性和方法,引用类型时会出先问题,解决方法是通过借用构造函数来实现,在子类构造函数内部调用父类的构造函数实现继承父类的属性,使用最多方法是组合式继承,通过原型继承方法,通过构造函数继承实例属性。
- 原型式继承:基于对象创建对象,执行对给定类型浅复制。
- 寄生式继承:基于对象创建对象然后内部增强。
- 寄生组合继承:寄生式继承与组合继承优点集合,实现继承的有效方法。