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

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

本文展示 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 相关产品和应用

全部下载

专题列表