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

工厂模式

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

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

我是一条分割线

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容