创建对象
虽然object构造函数或者对象字面量都可以创建单个对象,这种方式有着明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。
那么如何解决这个问题呢?
工厂模式
这种模式抽象了创建具体对象的过程,考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节。
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("Nicholas", 29, "Software Engineer");
var person2 = createPerson("Greg", 27, "Doctor");
函数createPerson()能够根据接受的参数来构建一个包含所有必要信息的Person 对象。可以无数次地调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象。
这种模式虽然解决了创建多个相似对象的文艺,但却没有解决对象识别的问题,即怎样知道一个对象的类型