面向对象编程:Object Oriented Programming,简称OOP。相比于过程式编程(procedural programming),OOP更灵活,代码可复用,高度模块化等特点。

  • 什么是对象(object)?

    • 对象是单个实物的抽象表示,一个对象可以表示一类实物,实物之间的关系就变成了对象间的关系,从而可以模拟真实情况,面向对象去编程。
    • 对象是一个容器,属性(property)就是对象的状态,方法(methods)就是对象的行为。
  • 构造函数
    JavaScript的对象体系基于构造函数(constructor)和原型链(prototype)。构造函数就是对象的模板,构造函数也是一个普通的函数,用来构造对象,描述对象的基本结构。构造函数有两个特点,一是使用this关键字,代表未来要生成的对象的实例,二是使用new操作符来生成对象。

  • new命令

    • new命令的用法
      执行构造函数,生成实例对象
      var Vehicle = function (run) {
      this.price = 1000;
      this.run = run
      };
      var v = new Vehicle('开车');
      v.price // 1000
      v.run // '开车'
    • new命令原理
      new命令做了四件事
        - 创建一个空对象,作为要返回的对象实例
        - 将空对象的原型指向构造函数的prototype属性
        - 将空对象赋值给函数内部的this关键字
        - 开始执行构造函数内部的代码
      注意:
       对于普通函数也就是内部没有this关键字的函数使用new命令,会返回一个空对象。
    • new.target