首先,什么是对象?比如电视机就是一个对象,一个很具体的实例。JS中对象指的就是键值对的集合。当值为一个实例时,就可以称为属性。为一个函数时,就可以称为方法。
什么是面向对象(OOP思想)?比如我需要看电视,我不需要知道电视的内部原理。只需会使用电视就可以了。
面向对象的三个特点:封装、继承、多态。
1、封装
所谓的封装,就是把抽象出来的的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只能通过提供的一些方法来对数据进行操作。
2、继承
继承是为了解决代码的复用,让编程更加贴近人类的思维。当多个对象具有相同的属性和方法时,我们可以从这些类中抽象出一个父类,在父类中定义这些属性和方法,这样的话就不需要在每个子类中都定义这些属性和方法,只需要从父类继承这些属性和方法就可以啦。
3、多态性
多态,指的是一个引用在不同情况下的多种状态。也可以理解为:父类的一个方法,在各个子类中具体的实现办法。
多态有利于代码的维护和扩展,当我们只用同一个对象时,只需要传入不同的参数就可以了,而不需要使用使用new 再去创建一个对象。