第六章——创建对象

一、寄生构造函数模式、工厂模式、稳妥构造函数模式的区别与联系

  • 寄生构造函数模式(重写了构造函数的返回值):
      function Person(name,age,job){
        var o = new Object();
        o.name= name
        o.age = age
        o.sayName = function (){
          console.log(this.name)
        }
        return o
      }
      var person = new Person("dailu")
      person.sayName() //dailu
      console.log(person instanceof Person)  //false
  • 工厂模式(不使用new 操作符来实例化对象):
      function Person(name,age,job){
        var o = new Object();
        o.name= name
        o.age = age
        o.sayName = function (){
          console.log(this.name)
        }
        return o
      }
      var person = Person("dailu")
      person.sayName() //dailu
      console.log(person instanceof Person)  //false
  • 稳妥构造函数模式(不使用new 也不使用this,只能通过方法访问属性)
      function Person(name,age,job){
        var o = new Object();
        o.sayName = function (){
          console.log(name)
        }
        return o
      }
      var person = Person("dailu")
      person.sayName() //dailu
      console.log(person instanceof Person)  //false

共性:都不能判断对象类型

你可能感兴趣的:(第六章——创建对象)