工厂模式与构造方式
得到一个对象时,都是调用一个函数,传入参数,就行了。
工厂模式里面还多出一步new Object(),还要return.
那么工厂模式的优势在哪里呢?
18
收起
正在回答
2回答
看起来是有些相似,但是构造函数与工厂函数之间差异如下:
(1)工厂模式需要创建对象,以及必须有返回值
(2)工厂模式针对的都是Object的对象模型,而构造方式可以匹配自定义的对象模型
(3)构造方式弊端,如果在全局中定义相同的局部变量,容易造成全局污染,因为this.xx如果在局部获取不到,就会去全局中获取
(4)构造方式可以重写,可以在全局中添加新属性和方法Person.prototype = {},但工厂函数只能在局部添加
并且,一般情况下,构造函数用于大型项目,属性以及方法时常变换的项目;工厂模式用于小型项目,或者正在制作过程还没有成型的项目
不同的模式,根据项目去选择即可
希望可以帮到你!
卡布琦诺
2019-08-16 19:18:12
老师给你举一个例子,帮助你理解
function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); }; return o; } var person1 = createPerson("imooc", 29, "teacher"); var person2 = createPerson("aimi", 27, "Doctor");
在这段代码中使用了工行模式,函数 createPerson() 能够根据接受的参数来构建一个包含所有必要信息的 Person 对象,可以无数次地调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象,因此有点呢,就是可以解决创建多个相似对象的问题
希望可以帮到你!
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星