首页 > 其他分享 >用闭包写个单例模式

用闭包写个单例模式

时间:2023-12-19 14:13:49浏览次数:25  
标签:闭包 return 变量 instance 包写 单例 用闭 var 函数

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);

 

标签:闭包,return,变量,instance,包写,单例,用闭,var,函数
From: https://www.cnblogs.com/xhu218/p/17913593.html

相关文章

  • [JS] JS单例模式的实现
    JS单例模式的实现单例模式简介单例模式(SingletonPattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,提供了一种创建对象的最佳方式。特点:意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当......
  • Python实现单例模式的五种写法
    单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点。在Python中,可以使用多种方法实现单例模式。本文将介绍五种常见的Python单例模式实现方式,包括使用模块、装饰器、基类、元类和线程安全机制。单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供全局......
  • 设计模式之单例模式:不同实现方式的深度解析
    什么是单例模式单例模式是一种常用的软件设计模式,其主要作用是保证某一个类只能有一个实例,并提供对该实例的全局访问点。单例模式有三个要点:1.某个类只能有一个实例。2.它必须自行创建这个实例。3.它必须自行向整个系统提供这个实例。单例模式的分类单例设计模式在具体实现......
  • 设计模式—单例模式
    本文是关于设计模式中单例模式的Java代码实现详解懒汉式publicfinalclassSingleton{privatestaticSingletoninstance;publicStringvalue;privateSingleton(Stringvalue){this.value=value;}publicstaticSingletongetIns......
  • Java单例模式
    代码publicclassSamlUtil{privatestaticSamlUtilsamlUtil; privatestaticfinalObjectlock=newObject();privateSamlUtil(){ } publicstaticSamlUtilgetInstance(){ SamlUtiltemp=samlUtil; if(temp==null){ synchronized......
  • Python - 实现【单例模式】的四种方法
    方法一:使用模块实现单例模式在Python中,每个模块只会被导入一次,因此可以将需要实现单例模式的类定义在一个模块中,每次需要使用该类时,将该模块导入即可。#singleton.pyclassSingleton:passsingleton=Singleton()在其他模块中直接引用这个singleton对象即可。2.方法二:使......
  • 单例设计模式
    单例模式是一种常用的软件设计模式,其目标是确保一个类只有一个实例,并提供一个全局访问点。在C++中,可以通过以下步骤实现单例模式:私有化构造函数,以防止外界创建单例类的对象。使用类的私有静态指针变量指向类的唯一实例。使用一个公有的静态方法获取该实例。以下是一个简......
  • go中使用闭包
    Go语言中的闭包:封装数据与功能的强大工具原创 TimLiu 爱发白日梦的后端 2023-11-0115:35 发表于广东收录于合集#go112个爱发白日梦的后端专注Go语言领域的发展,学习成为更牛逼的架构师,日常分享Go语言、架构、软件工具的使用。149篇原创内容公众号......
  • 单例模式(Singleton)的同步锁synchronized
    当两个人同时操作一条数据时会引起并发,这时候可以用synchronized锁住代码块,进行相关处理。注:JPAUtil根据ID查询不是实时数据,可能里面有缓存。后改成DBTool原生查询sql,才查出实时数据。DBTooltool=newDBTool();Record[]r=tool.executeQuery("selectstatefromtableNamewh......
  • 单例模式
    创建单例模式importthreadingimporttimeclassSingleton:instance=None#加锁是为了当多线程调用时,防止出现多线程执行太快都去新建了一个对象,这就违背了单例模式的意义lock=threading.RLock()def__init__(self,name):self.name=nam......