# 面向对象

 - 它是一个编程思想

  + 当我需要完成一个业务逻辑的时候 先写一个构造函数

  + 这个构造函数可以创建一个对象(这个对象可以完成业务逻辑)

  + 使用构造函数去 new 一个对象

  + 让对象去完成业务逻辑

  + 我等待结果

 

## 书写构造函数

 - 对象中需要的属性卸载构造函数体内

 - 对象中需要的方法写在构造函数的原型上(prototype)

 - 规则和规范

  + 规范

    1 . 首字母大写

    2 . 不管需不需要参数 都把小括号写上

  + 规则

    1 . 必须和 new 连用

    2 . 不要写 return 

 

## 构造函数的 this 指向

 - 构造函数体内的 this 指向当前实例

 - 构造函数的原型上的方法 this 指向当前实例

 

## 原型和原型链

 - 原型

  + 构造函数的 prototype 我们叫做 原型对象

  + 实例对象的 "__proto__" 我们叫做 原型属性

 - 原型链

  + 从基础对象出发 用  "__proto__" 串联起来的对象链状结构就叫做原型链

 

## 重点来了!

   - 面向对象四句话

    + 每一个函数天生自带一个属性 叫做 prototype 是一个对象空间

    + 每一个对象天生自带一个属性 叫做  "__proto__" 指向所属构造函数的 prototype

    + 每一个函数天生自带的那个 prototype 上有一个 constructor 属性 指向该构造函数

    + 当一个对象没有准备的构造函数来实例化的时候 那么它的所属构造函数是 Object