首页  >  问答  >  正文

javascript - js创建一个对象使用工厂模式和寄生模式究竟有什么区别?

如题,在看高程3这本书的面向对象的程序设计这一章时,有一小节专门就是介绍创建对象的7种方式,看完之后有一个疑惑,那就是工厂模式和寄生模式究竟有什么区别?
书中也很明确的说明了,两者除了调用的时候有没有用new关键字之外完全相同。那这个用意是什么呢?按道理,是否通过new生成的实例对象,最终的结果都是一样的,因为最后返回的是同一个东西。
所以,这两者的区别到底是什么呢?很疑惑,在具体的使用当中,什么时候需要用工厂模式,什么时候应该用寄生模式?

PHP中文网PHP中文网2770 天前379

全部回复(2)我来回复

  • 黄舟

    黄舟2017-04-11 12:57:42

    其实社区本来就有很好的回答,相信你没搜索过,养成先搜索后提问的习惯。
    https://segmentfault.com/q/10...

    回复
    0
  • PHP中文网

    PHP中文网2017-04-11 12:57:42

    笼统得讲,实际就是 你是要通过new 来返回个对象,还是通过 你在函数里面写个对象再把他返回出来。 new的话就有个 this指向的问题,但实际跟前面的函数方法,本质是一样的,这个this 你可以理解为就是 你用new的方式返回出来的那个对象 他会继承构造函数里面的属性方法,极其原型里面的相应属性方法。链接描述

    回复
    0
  • 取消回复