JavaScript 单例模式的最简实现:通过私有属性复用实例

Theo
Theo
发布时间:2026-10-14| 6人浏览过
原创

本文展示 JavaScript 中极简的单例模式实现方案。利用构造函数内部的私有属性记录唯一实例,无需引入复杂框架即可实现对象实例化的严格控制。

原理与目标

单例模式的核心目标是确保一个类只有一个实例,并提供一个全局访问点。在 JavaScript 中,可以通过函数对象的属性来模拟“私有变量”,从而在不暴露内部状态的情况下控制实例的创建。

具体实现步骤

第1步:定义构造函数

创建一个普通函数作为构造函数。该函数不对外暴露任何复杂的逻辑,仅负责处理实例的唯一性检查。

第2步:编写单例逻辑代码

在构造函数内部,利用 SingeInstance._instance 这一命名约定(下划线开头表示非公开属性)来存储唯一的实例引用。执行流程如下:

  1. 检查:SingeInstance._instance 是否存在。
  2. 判断:如果不存在(即首次调用),将当前新建的对象(this)赋值给 _instance。
  3. 返回:无论是否新建,最后都返回 SingeInstance._instance。

完整代码如下:

function SingeInstance(){
  if(!SingeInstance._instance)
    SingeInstance._instance=this;
  return SingeInstance._instance;
}
var obj1=new SingeInstance();
var obj2=new SingeInstance();
console.log(obj1===obj2);   //true

第3步:验证结果

通过两次 new 操作分别获取 obj1 和 obj2。由于构造函数内部强制返回同一个引用,console.log(obj1 === obj2) 将输出 true,证明两者指向内存中的同一块区域。

简要总结

上述实现是 JavaScript 单例模式最精简的形式。它省去了原型链继承或闭包等复杂机制,直接在构造函数体中完成实例管控。虽然代码简短,但在需要统一管理全局配置、日志记录器等场景下非常实用。以上就是 JavaScript 单例模式最简单实现方法的详细内容,更多关于 JS 设计模式的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。