1、工厂模式
主要好处就是可以消除对象间的耦合,通过使用工程方法而不是new关键字。将所有实例化的代码集中在一个位置防止代码重复。
工厂模式解决了重复实例化的问题 ,但还有一个问题,那就是识别问题,因为根本无法 搞清楚他们到底是哪个对象的实例。
function createObject(name,age){//集中实例化的函数var obj = new Object(); obj.name = name; obj.age = age; obj.func = function () { ralert(this.name+this.age); }; return obj; } var test1 = createObject('tom',22,);//第一个实例
var test2 = createObject('jak',25,);//第二个实例
2、构造函数模式
使用构造函数的方法 ,即解决了重复实例化的问题 ,又解决了对象识别的问题,该模式与工厂模式的不同之处在于:
1.构造函数方法没有显示的创建对象 (new Object()); 2.直接将属性和方法赋值给 this 对象; 3.没有 renturn 语句。