创建对象常用的四种方式Ⅱ

工厂模式

前面提到了字面量方式和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

工厂模式优点:
将重复的代码封装,可以快速批量的创建对象

我是一条分割线

以上工厂模式就先讲这么多,下篇来学习最后一种方式 =>【构造函数】

你可能感兴趣的:(创建对象常用的四种方式Ⅱ)