JavaScript面向对象程序设计:从对象基础到工厂模式详解

作者:纸飞机

时间:2026-10-30

浏览:528

本文深入解析JavaScript面向对象程序设计,涵盖对象定义、Object构造函数与对象字面量两种创建方式,并重点介绍工厂模式。通过代码示例展示如何封装对象创建细节,解决重复代码问题,同时指出工厂模式在对象类型识别上的局限性。

文章目录

JavaScript对象基础

在JavaScript中,对象被定义为无序属性的集合,这些属性可以包含基本值、其他对象或函数。可以将对象视为散列表,即一组名值对(key:value),其中值可以是数据或函数。每个对象都是基于一个引用类型创建的。

理解对象

在前面的博客中,我们介绍了两种创建对象的方式:一种是创建Object实例,另一种是使用对象字面量法。


var person = new Object();
person.sex = man;
person.name = bluce
person.age = 58;
person.sayHi() = function(){
console.log('Hello World!');
}

然而,在实际开发中,我们更常采用以下这种方式。


var person = {
sex:man,
name:'bluce',
age:'58',
sayHi:function(){
console.log('Hello World!');
}
}

创建对象的常用方式

创建对象

虽然使用Object构造函数和对象字面量法都可以创建单个对象,但它们存在明显的缺点:如果使用同一接口创建大量对象,会产生大量的重复代码。因此,常用的创建对象方式主要有工厂模式、构造函数模型和原型模式。

这里有一个疑问:采用AMD规范后,编写的单个JS文件可以看作是一个模块,也可以说是一个“类”。目前这与JavaScript中的“类”概念有些混淆,希望后续能明确各自的应用场合。

关于JavaScript面向对象程序设计教程,小编就介绍到这里,希望对大家有所帮助!

工厂模式详解

下面给大家补充JavaScript面向对象设计中的工厂模式。

工厂模式是软件工程领域一种广为人知的设计模式,它抽象了创建具体对象的过程,可以用函数来封装以特定接口创建对象的细节。

之前在Java的DAO中用过这种设计模式,比较容易理解。


function createPerson(name,age,sex){
  var obj = new Object();
  obj.name = name;
  obj.age = age;
  obj.sex = sex;
  obj.sayHi() = function(){
    console.log(this.name);
  }; //引号不要漏掉,养成好的习惯
  return obj;
}
var person1 = createPerson("bluce",58,"man");
var person2 = createPerson("john",68,"man");

使用该函数可以根据接收的参数创建一个包含必要信息的Person对象。可以无数次地调用这个函数,每次都会返回一个包含三个属性和一个方法的对象。工厂模式解决了创建多个相似对象的问题,但没有解决对象识别的问题(如何知道一个对象的类型)。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章