用闭包写个单例模式
2023-12-19 14:04 钟铧若岩 阅读(26) 评论(0) 编辑 收藏 举报DN 对闭包的定义是:闭包是指那些能够访问自由变量的函数,自由变量是指在函数中使用的,
但既不是函数参数又不是函数的局部变量的变量,由此可以看出,闭包=函数+函数能够访问的自
由变量,所以从技术的角度讲,所有 JS 函数都是闭包,但是这是理论上的闭包,还有一个实践角
度上的闭包,从实践角度上来说,只有满足 1、即使创建它的上下文已经销毁,它仍然存在,2、
在代码中引入了自由变量,才称为闭包。
闭包的应用:
模仿块级作用域。2、保存外部函数的变量。3、封装私有变量
单例模式:
var Singleton = (function(){ var instance; var CreateSingleton = function (name) { this.name = name; if(instance) { return instance; } // 打印实例名字 this.getName(); // instance = this; // return instance; return instance = this; } // 获取实例的名字 CreateSingleton.prototype.getName = function() { console.log(this.name) } return CreateSingleton; })(); // 创建实例对象 1 var a = new Singleton('a'); // 创建实例对象 2 var b = new Singleton('b'); console.log(a===b);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?