1.什么是对象?
对象是带有属性和方法的数据类型。
2.任何一门高级编程语言都需要面向对象,javascript是一门基于原型的面向对象脚本语言,因此应当将我们的思维由面向过程转变为面向对像
3.面向过程与面向对象是两种不同的编程思想,但二者又有着千丝万缕的联系,在许多项目开发中往往是面向过程中也有面向对象,面向对象中有面向过程。
面向过程:由onload初始化整个程序,对应的是全局变量和函数;
面向对象:由构造函数来初始化对象,带有属性(对象.属性),方法(构造函数.原型属性.方法);
4.在面向对象中,类是对象的抽象,对象是类的具体实例,(万物皆对象);
5.面向对象的特性:
- 抽象:抽象就是忽略那些与当前目标无关的那些方面,以便充分的注意与当前目标有关的方面;
- 封装:封装就是把过程和数据封装起来,对数据访问只能通过开放接口;
- 继承:子类对象继承父类的属项和方法
- 多态:多态是指两个或多个不同类的对象,对于同一消息(方法的调用)做出不同相应的方式。
6.构造函数:
构造函数就是一个普通的函数,创建方式和普通函数的创建方式相同,不同的是构造函数名首字母习惯大写;
构造函数与普通函数的调用方法不同,普通函数通过函数名直接调用,二构造函数需要通过new 关键字实例化对象来调用;
构造函数执行流程:
- 立即创建一个对象;
- 将新建对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象;
- 逐行执行代码
- 将新建的对象作为返回值返回
7.关键字new
- 将一个函数变成对象并返回
- 在这个函数的内部将this指向函数本身
- 可以将任何一个函数直接变成一个对象
- 只有和构造函数配合时才有用,它相当于可以讲话构造函数自己创建对象并返回对象的步骤;
8.构造器(constructor)和原型属性(prototype)
在任何对象中都有构造和原型属性,包括原生对象:Data,Array....
constructor:返回创建此对象的构造函数的引用;
prototypr:让我们有能力向对象添加属性和方法;作用是构造函数的共享库;在这个共享库里面存储的所有数据将会被所有的新对象公用。大大降低了创建方法的成本;