面向对象

单例模式

  • 单例模式:其实就是一个对象,解决命名冲突的问题,模块化方便代码管理,常用
    • 命名空间 - > nameSpace
    • ps:单例模式下每个属性和属性之间的调用使用this就可以,比如:
      1
      2
      3
      4
      5
      6
      7
      8
      var obj = { //obj即为命名空间
      fn:function(){
      },
      fn1:function(){
      this.fn(); // 直接用this.就可以调用obj内的其它函数
      }
      }

构造函数(类)

  1. 内置类
  2. 实例:具体到这个类中的某一个。每一个实例都是一个对象

    1
    2
    var ary = new Date;
    console.log(typeof ary); --> "Object"
    • 每一个数组都是Array这个类的一个实例
    • 每一哥函数都是Function这个类的一个实例
  3. instanceof 专门判断一个实例是否属于一个类的操作符,返回一个boolean值
  4. 任何一个引用数据类型都是Object这个类的实例
  5. 如何定义一个类:

    • 类名尽量使用首字母大写;
    • 构造函数总的this就是当前实例 -> 如果想在实例刚添加私有属性 this.propertyName
    • 构造函数会默认返回实例,如果return一个引用数据类型会将构造函数的默认返回值破坏掉;
      1
      2
      3
      4
      5
      6
      function Tab(value){//1.普通函数 2.构造函数(类) 3.Function这个类的一个实例
      var a = 100; //这个私有变量不会对实例产生任何影响
      this.key = value; //给实例创建一条属性
      }
      Tab(); //将Tab当成普通函数执行
      var tab1 = new Tab() //将Tab当成类来使用
  6. new运算符做了哪些事情的简单分析