优点:
能够识别对象类型(工厂模式无法识别对象类型);
直接将属性和方法赋值给了this对象。
缺点:
在每次创建实例的时候都会重新创建一次方法(理论上每次创建对象的时候属性均不同,而对象的方法是相同的)。
思路:
结合Prototype一起使用 。
例子:
-
使用构造器模式写一下代码:
问题:p2在实例化的时候,getName又被创建了一次。那把getName方法移出来?如下:
很明显,function getName() { ... } 污染了全局变量对象,所以这样也不行。
首先要知道,构造函数除了创建对象,还做了一件有用的事情:为创建的对象设置了原型对象。(注:推荐构造函数以大写字母开头,以便区分)
-
结合原型可以解决这个问题。 更改如下:
一句话总结:
相当于一个部门,只生产一种类型的实例。
转载于:https://my.oschina.net/Karon/blog/496577