面向对象的三大特性
- 封装性
对象是将数据与功能组合到一起, 即封装
- js 对象就是 键值对的集合
- 键值如果是数据( 基本数据, 复合数据, 空数据 ), 就称为属性
- 如果键值是函数, 那么就称为方法
- 对象就是将属性与方法封装起来
- 方法是将过程封装起来
- 继承性
所谓继承就是自己没有, 别人有,拿过来为自己所用, 并成为自己的东西
- 传统继承基于模板
子类可以使用从父类继承的属性和方法。即:让某个类型的对象获得另一个类型的对象的属性的方法
class Person { string name; int age; } class Student : Person {} var stu = new Student(); stu.name
- js 继承基于对象
在JavaScript中,继承就是当前对象可以使用其他对象的方法和属性。
js继承实现举例:混入(mix)
function mix ( o1, o2 ) { for ( var k in o2 ) { o1[ k ] = o2[ k ]; } }
- 多态性(基于强类型)只做了解
把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
动物 animal = new 子类(); // 子类:麻雀、狗、猫、猪、狐狸...
动物 animal = new 狗();
animal.叫();