首页 > 技术文章 > js-面向对象

zhang-jiao 2018-11-13 11:26 原文

1.什么是对象?

  对象是带有属性和方法的数据类型。

2.任何一门高级编程语言都需要面向对象,javascript是一门基于原型的面向对象脚本语言,因此应当将我们的思维由面向过程转变为面向对像

3.面向过程与面向对象是两种不同的编程思想,但二者又有着千丝万缕的联系,在许多项目开发中往往是面向过程中也有面向对象,面向对象中有面向过程。

面向过程:由onload初始化整个程序,对应的是全局变量和函数;

面向对象:由构造函数来初始化对象,带有属性(对象.属性),方法(构造函数.原型属性.方法);

4.在面向对象中,类是对象的抽象,对象是类的具体实例,(万物皆对象);

5.面向对象的特性:

  • 抽象:抽象就是忽略那些与当前目标无关的那些方面,以便充分的注意与当前目标有关的方面;
  • 封装:封装就是把过程和数据封装起来,对数据访问只能通过开放接口;
  • 继承:子类对象继承父类的属项和方法
  • 多态:多态是指两个或多个不同类的对象,对于同一消息(方法的调用)做出不同相应的方式。

6.构造函数:

 构造函数就是一个普通的函数,创建方式和普通函数的创建方式相同,不同的是构造函数名首字母习惯大写;

 构造函数与普通函数的调用方法不同,普通函数通过函数名直接调用,二构造函数需要通过new 关键字实例化对象来调用;

 构造函数执行流程:

  • 立即创建一个对象;
  • 将新建对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象;
  • 逐行执行代码
  • 将新建的对象作为返回值返回

7.关键字new

 

  • 将一个函数变成对象并返回
  • 在这个函数的内部将this指向函数本身
  • 可以将任何一个函数直接变成一个对象
  • 只有和构造函数配合时才有用,它相当于可以讲话构造函数自己创建对象并返回对象的步骤;

8.构造器(constructor)和原型属性(prototype)

    在任何对象中都有构造和原型属性,包括原生对象:Data,Array....

    constructor:返回创建此对象的构造函数的引用;

  prototypr:让我们有能力向对象添加属性和方法;作用是构造函数的共享库;在这个共享库里面存储的所有数据将会被所有的新对象公用。大大降低了创建方法的成本;

推荐阅读