美文网首页
第六章——创建对象

第六章——创建对象

作者: 起这么长的名字根本没有用 | 来源:发表于2017-03-01 19:56 被阅读17次

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

  • 寄生构造函数模式(重写了构造函数的返回值):
      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

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

相关文章

网友评论

      本文标题:第六章——创建对象

      本文链接:https://www.haomeiwen.com/subject/vdecgttx.html