第六章——创建对象

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • var a = 1; console.log(typeof a);// 'number' var b = '1';...
    zdnexus阅读 2,738评论 0 0
  • 如何优雅的去创建一个对象 在javascript中,创建一个对象有很多方法,但很多时候我们得根据我们的需求去选择其...
    俗三疯阅读 2,695评论 0 0
  • Javascript高级程序设计(第2版) 6.1创建对象 阅读整理 最简单方式,创建一个object的实例,然后...
    RK_CODER阅读 2,701评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,388评论 2 17
  • javascript有很多創建對象的模式,完成工作的方式也不只一種。你可以隨時定義自己的類型或自己的泛用對象。可以...
    WanLum阅读 1,805评论 0 0

友情链接更多精彩内容