美文网首页
js创建对象之工厂模式

js创建对象之工厂模式

作者: 我是小丁 | 来源:发表于2016-05-02 22:08 被阅读229次

1.什么是对象?

ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”对象的每个属性或函数都有一个值,我们可以把对象看成一组无序的名值对。

1.对象的创建方法

创建一个简单的对象实例:

var cat=new Object();
cat.name="花花";
cat.age=3;

cat.showName=function(){
     alert(this.name);
};

上面的代码创建了一个名为cat的对象,并给它添加了两个属性(name和age)和一个方法(showName)。showName方法用于显示this.name(将被解析为cat.name)的值。这是以前程序员创建对象的一种方法,现在对象字面量成为创建这种对象的首选,前面的例子用对象字面量语法可以这么写:

var cat={
name:"花花",
age:3,

showName:function(){
    alert(this.name);
    }
};

虽然Object构造函数和对象字面量都可以用来创造单个对象,但是这种方式有一个严重的缺陷,使用同一接口创建多个对象,会产生大量重复代码。为了解决这种问题,人们开始使用对象的创建模式。

2.对象创建之工厂模式

工厂模式是软技领域一种很常用的设计模式,这种模式抽象了对象建立的过程。考虑到js中没有类的概念,开发人员发明了一种函数,用来封装以特定接口创建对象的细节。如下代码:

function createObject(name,age){
      var o=new Object();
      o.name=name;
      o.age=age;
      o.showName=function(){
           alert(this.name);
      };
      return o;
}
var cat1=createObject("花花",3);
var cat2=createObject("小黑",4);

函数createObject()可以接受的参数来构建一个含有必要信息的cat对象,每次调用这个对象它都会返回一个包含两个属性和一个方法的对象。工厂模式解决了创建多个相似对象的问题,但却没有解决对象识别的问题(即怎么知道一个对象的类型)。下节讲的构造函数模式就解决了这个问题。

相关文章

  • js 中的创建对象的几种方式

    JS中创建对象的主要模式有 工厂模式 工厂模式抽象了具体创建对象的过程例如 函数createPerson()能够根...

  • 2020-12-15

    js对象的创建和函数 创建对象 工厂模式 构造函数 原型方式+构造函数

  • js创建对象之工厂模式

    1.什么是对象? ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”对象的每个...

  • 设计模式之工厂模式一简单工厂模式

    设计模式之工厂模式一简单工厂模式 工厂模式由来: 在我们创建对象的时候使用,使用new操作的。如果多个对象创建都使...

  • js面向对象

    js面向对象 方法一:工厂模式 所谓工厂模式,简单点儿说就是按照工厂生产的过程创建对象,原材料->加工->返还产品...

  • java设计模式-工厂模式之简单工厂

    工厂模式属于创建型设计模式(用于创建对象),今天这里要讲的就是工厂三兄弟之简单工厂。工厂三兄弟:(简单工厂,工厂,...

  • 设计模式 -- 工厂模式

    设计模式 -- 工厂模式 工厂模式 1. 什么是工厂模式 工厂模式属于创建对象的模式。将对象的创建交给工厂进行,这...

  • javascript面向对象与原型

    昨天我们讲了在面向对象中创建对象的几种方式 工厂模式 构造函数模式 工厂模式创建的对象,像工厂一样来创建对象,创建...

  • JS创建对象的几种模式

    JS创建对象的几种模式及分析对比 工厂模式 实例化: 缺点:没有解决对象的识别问题. 构造函数模式 通过对比工厂模...

  • 设计模式之工厂模式(一)

    介绍工厂模式 工厂模式创建对象(视为工厂里的产品)时无需指定创建对象的具体类。 工厂模式定义一个用于创建对象的接口...

网友评论

      本文标题:js创建对象之工厂模式

      本文链接:https://www.haomeiwen.com/subject/jwulrttx.html