第四章 混合对象”类“
4.混合对象”类“
面向类的设计模式:
实例化、继承、多态
本章将介绍面向对象编程理论
4.1 类理论
4.1.1 封装
面向对象编程强调数据和操作数据的行为是关联的
因此好的设计是把数据以及它相关的行为打包(封装),这在正式的计算机科学中有时被称为数据结构
4.1.2 继承
4.1.3 多态
父类的通用行为可以被子类用更特殊的行为重写。
不推荐使用:会降低代码的可读性和健壮
4.1.4 设计模式
迭代器模式,观察者模式,工厂模式,单例模式
4.1.5 js中的”类“
new instanceof
ES6:class
类是一种设计模式,可用一些方法实现累的功能
4.2 类的机制
在许多面向类的语言中,”标准库“会提供Stack类,它是一种”栈“的数据结构,内部会有一些变量来存储数据,同时提供一些公有的可访问行为(方法),从而让代码可以和(隐藏的)数据进行交互(添加,删除)
js语言中并不提供这些...
4.2.1 建造
类和实例的概念来源于房屋构造,抽象到具体
4.2.2 构造函数
构造函数:类实例由一个特殊的类方法构造,这个方法名和类名相同,被称为构造函数
用new来调用
4.3 类的继承
4.3.1 多态
4.3.2 多重继承
js本身不提供多重继承功能
4.4 混入
来实现多重继承
js中只有对象,并不存在可以被实例化的类,一个对象并不会复制到其他对象,他们会被关联起来
4.4.1 显示混入
A.method.call(B)
4.4.2 隐式混入
通过在构造函数调用或方法调用中使用A.method.call(this)
“类”意味着复制
在js中,模拟类得不偿失,不推荐使用