JavaScript对象创建法:工厂模式、构造函数与原型模式详解
160 浏览量
更新于2024-08-30
1
收藏 207KB PDF 举报
本文主要探讨了JavaScript中创建对象的三种方法:工厂模式、构造函数模式以及原型模式。首先,工厂模式是一种简单的方式,通过函数来创建对象,但它存在一个问题,即无法明确对象的类型,因为没有内置的方式来识别对象。工厂模式的代码可能看起来像这样:
```javascript
function createPerson(name) {
return { name: name };
}
var person1 = createPerson('John');
```
工厂模式的一个缺点是每次创建对象时都会创建新的函数实例,导致重复的资源消耗。
相比之下,构造函数模式通过使用`new`关键字来创建对象,更注重实例化过程。构造函数通过`this`关键字为新创建的对象添加属性和方法,并且在执行过程中不会显式地返回对象。例如:
```javascript
function Person(name) {
this.name = name;
this.sayName = function() {
console.log('My name is ' + this.name);
}
}
var person1 = new Person('Alice');
person1.sayName(); // 输出 "My name is Alice"
```
构造函数的一个关键特性是每个实例都拥有独立的sayName方法副本,这可能导致内存浪费。为了解决这个问题,原型模式应运而生。
原型模式利用原型对象(`prototype`)实现属性和方法的共享,从而节省内存。每个函数的实例都继承其原型对象的属性。当查找属性时,会先在实例对象上找,找不到再查找原型,直至找到或到达原型链的顶端。如:
```javascript
Person.prototype.sayName = function() {
console.log('My name is ' + this.name);
}
var person1 = new Person('Bob');
console.log(person1.sayName()); // 输出 "My name is Bob"
```
通过`Object.getPrototypeOf()`,我们可以验证原型关系:
```javascript
console.log(Object.getPrototypeOf(person1) === Person.prototype); // 输出 true
```
JavaScript中的对象创建方法各有优缺点。工厂模式适合简单的对象创建,构造函数模式适合创建具有特定行为的实例,而原型模式则用于提高代码效率和维护对象的封装性。选择合适的方法取决于具体的需求和场景。
2021-12-29 上传
2020-10-17 上传
2020-12-11 上传
点击了解资源详情
点击了解资源详情
2021-01-19 上传
2017-03-29 上传
2020-10-24 上传
2020-10-17 上传
weixin_38641111
- 粉丝: 1
- 资源: 931
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍