优点:

  1. 能够识别对象类型(工厂模式无法识别对象类型);

  2. 直接将属性和方法赋值给了this对象

缺点:

  1. 在每次创建实例的时候都会重新创建一次方法(理论上每次创建对象的时候属性均不同,而对象的方法是相同的)。

思路:

  1. 结合Prototype一起使用 

例子:

  • 使用构造器模式写一下代码:

    构造器模式

    问题:p2在实例化的时候,getName又被创建了一次。那把getName方法移出来?如下:

    构造器模式

    很明显,function getName() { ... } 污染了全局变量对象,所以这样也不行。

  • 首先要知道,构造函数除了创建对象,还做了一件有用的事情:为创建的对象设置了原型对象。(注:推荐构造函数以大写字母开头,以便区分)

  • 结合原型可以解决这个问题。 更改如下:

    构造器模式

一句话总结:

  • 相当于一个部门,只生产一种类型的实例。





转载于:https://my.oschina.net/Karon/blog/496577

相关文章:

  • 2022-01-08
  • 2021-07-11
  • 2022-01-10
  • 2021-09-11
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-09
  • 2022-12-23
  • 2021-09-09
  • 2021-07-18
  • 2021-07-28
  • 2022-12-23
相关资源
相似解决方案