6.2.1.工厂模式创建对象

考虑到在 ECMAScript 中无法创建类,开发人员 就发明了一种函数,用函数来封装以特定接口创建对象的细节,如下面的例子所示:

function createPerson(name,age,job){
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayName = function(){
        console.log(this.name);
    };
    return o;
}
//在函数内部创建对象,赋值,并返回对象
var person1 = createPerson("Nicholas", 29, "Software Engineer");
var person2 = createPerson("Greg", 27, "Doctor");

函数 createPerson()能够根据接受的参数来构建一个包含所有必要信息的 Person 对象。

  • 优点:
    可以无 数次地调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象。
  • 未解决的问题:
    工厂模式虽然解决了创建 多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型)。即,我们创建的就是一个对象,并不知道这个对象是人、动物、车...

你可能感兴趣的:(6.2.1.工厂模式创建对象)