有的时候我们需要重复创建很多个对象,对象的属性都相同, 这个时候如果一个一个的创建, 就会写大量的代码。 这时,工厂方法创建对象就非常有必要了。
所谓工厂方法,就是用函数的形势, 将传递进来的值加工再返回出去,这里将对象参数传递进来, 通过函数再将对象返回出去供调用。
- 传统方法创建对象
/*创建对象*/
var obj={
name:"张三",
age:18,
gender:"男",
sayName:function(){
console.log(this.name);
}
}
var obj2={
name:"李四",
age:18,
gender:"男",
sayName:function(){
console.log(this.name);
}
}
var obj3={
name:"王五",
age:18,
gender:"男",
sayName:function(){
console.log(this.name);
}
}
console.log(obj);
console.log(obj2);
console.log(obj3);
obj.sayName();
obj2.sayName();
obj3.sayName();
- 工厂方法创建对象
/*使用工厂方法创建对象*/
function createPerson(name,age,gendar){
var obj={
name:name,
age:age,
gendar:gendar,
sayName:function(){
console.log(this.name);
}
}
return obj;
}
var p1=createPerson("张三",18,"女");
var p2=createPerson("李四",22,"男");
var p3=createPerson("王五",22,"男");
console.log(p1);
console.log(p2);
console.log(p3);
p1.sayName();
p2.sayName();
p3.sayName();
- 两种方法运行结果是相同的: