工厂模式
前面提到了字面量方式和new的方式
下面来说一下它们的弊端
var person1 = {
name:"Eason",
age:18,
say:function(){
console.log("my name is"+this.name+"my age is"+this.age);
}
}
var person1 = {
name:"Jack",
age:9,
say:function(){
console.log("my name is"+this.name+"my age is"+this.age);
}
}
上面可以看出上面两端代码有大量重复内容,所以它们的缺点是:
使用字面量和new创建多个相同属性和方法的对象时,会产生大量的重复代码
工厂模式就是封装成一个对象函数
function createPerson(name,age){
var obj = new Object(); // [原料]
obj.name = name; //name 等于传进来的 name [加工]
obj.age = age; //age 等于传进来的 age [加工]
obj.say = function(){ // [加工]
console.log("my name is"+this.name+"my age is"+this.age);
}
return obj; // [出厂]
}
var p1 = createPerson("Eason",18);
var p2 = createPerson("Jack",9);
// 执行一下函数
p1.say(); //my name is Eason my age is 18
p2.say(); //my name is Jack my age is 9
工厂模式优点:
将重复的代码封装,可以快速批量的创建对象
以上工厂模式就先讲这么多,下篇来学习最后一种方式 =>【构造函数】