JavaScript 工厂模式
形如:
function createPerson(name , age ,gender){
//创建一个新的对象
var obj = new Object();
//向对象中添加属性
obj.name = name;
obj.age = age;
obj.gender = gender;
obj.sayName = function(){
alert(this.name);
};
//将新的对象返回
return obj;
}
function createDog(name , age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayHello = function(){
alert("汪汪~~");
};
return obj;
}
var obj1 = createPerson("邓伦",28,"男");
var obj2 = createDog("哈士奇",5);
优点:解决了创建多个相似对象的问题。
缺点:无法识别对象的类型。
obj1和obj2都是Object的实例,这样就难以识别对象的类型。
console.log(obj1 instanceof Object);//true
console.log(obj2 instanceof Object);//true
所以就需要构造函数来解决这些问题。