学习笔记
面向对象编程的javascript
1.对象
对人和物的抽象,比如鹦鹉是一个对象,麻雀也是一个对象,而对象拥有属性和方法,属性是存储数据,方法是处理数据的行为,例如the black cat sleep on the head, 对应的cat是一个对象,sleep是一个方法,black是一个属性。
2.类
对相似对象的集合,就好像鹦鹉和麻雀都是鸟,类可以包含相似对象的共同特征,比如麻雀和鹦鹉都是鸟类,都有翅膀等。在OOP中,类实际是对象的模板。
与传统的面向对象语言不同,JavaScript没有类,而是基于对象,依靠的是一套原型系统,而原型本质也是一个对象。
3.封装
封装主要包含两部分:
- 相关属性
- 针对数据能调用的方法
有些接口,我们并不关心它的内部是如何实现的,我们只关心它返回的结果。
4.聚合
聚合,就是指将多个对象组合成一个对象,对此我们可以将一个大问题切分成若干个小问题去解决,就好比一台电脑,功能有很多,但可以将它切分成若干个小模块去实现,比如鼠标,键盘,显示器等等去组合成一台电脑。
5.继承
继承,指对象可以从另一个对象那里继承他的属性和方法,我们通常可以称,B继承了A或者B扩展了A,有时B需要用到A中的部分方法,那么我们可以使得B继承A,来继承A中的方法,并且B依旧可以创建自己的方法,甚至可以将A中的方法重写,称为方法覆写。JavaScript的继承只能发生在对象和对象之间
6.多态
假如对象B继承了对象A,两者都实现了talk方法,这是有一个变量C,我们并不知道他是对象B还是对象A的情况下,我们依旧可以调用talk方法,不会影响代码正常工作。这种不同对象通过相同的方法调用实现各自行为的能力,我们称为多态