面向对象和面向过程、对象、类、实例
强烈推荐这个视频B站 - 2019全新javaScript进阶面向对象ES6
面向过程和面向对象
面向过程:按照步骤一步一步来实现。好比蛋炒饭
面向对象:先把对象找出来,再看对象里有什么功能,再把功能实现。好比盖浇饭
面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物,但是事物分为抽象的事物和具体的事物。如果程序比较大,多人合作,则用面向对象
面向对象的特性
-
封装性(封装代码)
-
继承性(儿子继承爸爸的一些属性和方法)
-
多态性(同一个对象在不同时刻有不同状态)
对象
现实生活中:万物皆对象,对象是一个具体的事物,能看得见摸得着。例如:一本书、一辆汽车、一个人是一个对象,一个数据库、一张网页、一个远程服务器的连接也可以是对象。
在javascript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如:字符串、数值、数组、函数等
对象是由属性和方法组成的
类
在ES6中新增加了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象
类抽取了抽象对象的公共部分,它泛指某一大类(class)(比如手机、明星)
而对象特指某一个,通过类实例化一个具体的对象(比如小米)
-
抽取(抽象)对象共用的属性和行为组织(封装)成一个类(模板)
-
对类进行实例化,获取类的对象
一言以蔽之:每个具体对象(Object)都是某个类(Class)的实例(Instance)
new的作用:
-
创建对象,实例化对象
-
实例化对象,赋予对象空间,即堆内存地址
-
调用构造函数