首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript单例问题?

JavaScript单例问题?

提问于 2018-02-06 21:10:30
回答 2关注 0查看 209

大多数线程都是通过传统的javascript生成的

代码语言:javascript
运行
AI代码解释
复制
new function(){} 

然后创建一个伪构造函数

代码语言:javascript
运行
AI代码解释
复制
var singleton = {
   dothis: function(){},
   dothat: function(){}
}

回答 2

坏蛋为你

回答已采纳

发布于 2018-02-07 05:24:06

可以实现利用闭包:

代码语言:javascript
运行
AI代码解释
复制
var myInstance = (function() {
  var privateVar;

  function privateMethod () {
    // ...
  }

  return { // public interface
    publicMethod1: function () {
      // private members can be accessed here
    },
    publicMethod2: function () {
      // ...
    }
  };
})();

关于构造时,它将简单地将匿名函数用于

代码语言:javascript
运行
AI代码解释
复制
function singleton() {
  var instance = (function() {
    var privateVar;

    function privateMethod () {
      // ...
    }

    return { // public interface
      publicMethod1: function () {
          // private members can be accessed here
       },
      publicMethod2: function () {
        // ...
      }
    };
  })();

  singleton = function () { // re-define the function for subsequent calls
    return instance;
  };

  return singleton(); // call the new function
}

当第一次调用该函数时,我将创建对象实例,并重新分配一个新函数,它的闭包中包含了该对象实例。

可以通过比较返回的对象来证明这一点:

代码语言:javascript
运行
AI代码解释
复制
singleton() == singleton(); // true

也将返回false:

代码语言:javascript
运行
AI代码解释
复制
({}) == ({}); // false
new Object() == new Object(); // false

云淡风轻

发布于 2018-02-07 06:28:43

可以尝试下这个代码:

代码语言:javascript
运行
AI代码解释
复制
var singleton = {};
singleton.dothis = function(){

};
singleton.someVariable = 5;
和开发者交流更多问题细节吧,去 写回答
相关文章
JavaScript设计模式 单例模式
面向对象的单例模式,是通过new关键字来实例化我们想要的对象,并将其赋值给instance。
菜的黑人牙膏
2019/01/21
5160
设计模式 - 单例模式 - JavaScript
如果一个类负责连接数据库的线程池、日志记录逻辑等等,此时需要单例模式来保证对象不被重复创建,以达到降低开销的目的。
心谭博客
2020/04/20
2830
JavaScript设模式---单例模式
1,单体模式用于创建命名空间,将系列关联的属性和方法组织成一个逻辑单元,减少全局变量。  逻辑单元中的代码通过单一的变量进行访问。
wfaceboss
2019/04/08
5360
JavaScript设计模式--单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。 当单击登陆按钮,页面中出现一个登陆浮窗,这个登陆浮窗是唯一的,无论单击多少次登陆按钮,这个浮窗都只会被创建一次,那么这个登陆浮窗就适合用单例模式来创建。
奋飛
2019/08/15
3380
JavaScript 中的单例模式 (singleton in Javascript)
单例模式的基本结构: MyNamespace.Singleton = function() { return {}; }(); 比如: MyNamespace.Singleton = (function() { return { // Public members. publicAttribute1: true, publicAttribute2: 10, publicMethod1: function() { ... }, publicMethod2: function(args) { ... } };
JadePeng
2018/03/12
1.2K0
【JavaScript设计模式】-- 单例模式
某些JavaScript的UI组件中,需要获取页面的DOM对象,只需要调用getInstance方法时返回该实例(调用时才判断是否已被初始化)的引用即可。
meteoric
2018/11/15
3710
javascript设计模式-单例模式
从今天开始,我将连续更新javascript的设计模式,资料来源主要是https://www.patterns.dev/ 这里涵盖了所有的设计模式,主要内容来自对这个网站的翻译加上自己的理解,也是自我学习的过程
FE情报局
2022/12/05
2970
javascript设计模式-单例模式
JavaScript中的单例模式
是一种常见的设计模式,在应用这个模式时,必须保证单例对象的类只有一个实例存在;这样全局拥有一个对象,有利于我们进行系统调整。
刘亦枫
2020/03/19
5740
JavaScript 设计模式 —— 单例模式
从事开发岗位也有一年多的时间了,见识过陈年老项目,也从零到一搭建过一个项目。随着项目和业务的不断扩张,写下的代码如果没有进行设计,就渐渐变成了 emm ... x 山,怎么写都不对劲,过段时间就想着重构。
前端LeBron
2022/11/21
4220
JavaScript 设计模式 —— 单例模式
「设计模式 JavaScript 描述」单例模式
单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的 window 对象等。在 JavaScript 开发中,单例模式的用途同样非常广泛。试想一下,当我 们单击登录按钮的时候,页面中会出现一个登录浮窗,而这个登录浮窗是唯一的,无论单击多少 次登录按钮,这个浮窗都只会被创建一次,那么这个登录浮窗就适合用单例模式来创建。
用户8921923
2022/10/24
8520
JavaScript设计模式之单例模式
JavaScript 设计模式 之旅 设计模式开篇 日常开发中,我们都很注重开发技巧,好的开发 技巧可以事半功倍得解决此刻得问题。 那么这些技巧如何来得呢? 我的理解: 经过不断踩坑,解BUG,总结出来一些处理对应问题解决方案,这就所谓的 技巧。 说起设计模式,其实我们日常开始中也经常用到,只是你不知道用的解决方案方案对应的设计模式名称. 学习设计模式的作用 在软件设计中,模式是一些经过了大量实际项目验证的优秀解决方案。熟悉这些模式的程序员,对某些模式的理解也会自然的形成条件反射。当遇到合适的场景出现时,
程序员海军
2021/10/08
3600
JavaScript设计模式之单例模式
JavaScript设计模式之单例模式
单例模式是javascript中最简单也是最常用的模式之一。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
用户6167509
2019/09/04
4270
JavaScript设计模式之单例模式
https://github.com/ahwgs/design-pattern-learning/tree/master/4.JavaScript%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E4%B9%8B%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F
w候人兮猗
2020/07/01
3190
JavaScript设计模式之单例模式
单例模式 系统中被唯一使用,一个类只有一个实例。实现方法一般是先判断实例是否存在,如果存在就返回,不存在就创建再返回。 在JavaScript里,单例作为空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。 模式作用: 模块间通信 系统中某个类的对象只能存在一个 保护自己的属性和方法 注意事项: 注意this的使用 闭包容易造成内存泄漏,不需要的赶快干掉 注意new的成本 代码示例 java中的单例模式 1.png java请类型可以私有化,外部new就会报错。 JavaScript中的
FinGet
2019/06/28
4440
JavaScript设计模式之单例模式
JavaScript 设计模式 之旅 设计模式开篇 日常开发中,我们都很注重开发技巧,好的开发 技巧可以事半功倍解决此刻的问题。 那么这些技巧如何来得呢? 我的理解:经过不断踩坑,解BUG,总结出来一些处理对应问题解决方案,这就所谓的 技巧。 说起设计模式,其实我们日常开始中也经常用到,只是你不知道用的解决方案方案对应的设计模式名称. 学习设计模式的作用 在软件设计中,模式是一些经过了大量实际项目验证的优秀解决方案。熟悉这些模式的程序员,对某些模式的理解也会自然的形成条件反射。当遇到合适的场景出现时,
程序员海军
2021/10/11
3370
JavaScript设计模式之单例模式
javascript设计模式一: 单例模式
作为一个半路出家的前端,随着项目经验的积累,也越来越意识到原生js的博大精深,最近正在研究js设计模式,接下来每学一个设计模式就是写篇文章做笔记,其实主要还是代码和设计思想的结合,努力体会,多思考合适自己项目中的应用场景,争取实际应用到实际项目中。
前端_AWhile
2019/08/29
4990
单例设计模式(javascript版)2
//单例模式思想 //让构造函数私有化就能比如是吧,因为一些原因比如你成绩不到,,不能入人大附中啊所以你应不应该走后门啊, //因为对象在类里面,所以外面是类.方法啊 //思路是先自执行一次,然后是先让最上面的先初始化再说吧 //然后是先自己执行,然后是看看是不是第一次,如果是那就实例化最上面的函数,然后是先类.函数然后是返回到最上面的那个执行login,然后是在类.函数然后是返回到最上面,然后是调用login然后执行 /**/ //先有类才有对象 /*class SingleO
贵哥的编程之路
2020/10/28
2680
单例设计模式(javascript版)2
闲聊javascript设计模式 - 单例模式
闲聊javascript设计模式 - 单例模式 最近在写电商网站的过程中,遇到了许多问题,也有很多遗憾的地方, 这几天一直在回忆开发的过程,现在想来有许多地方应该可以写的更好。 所以就来研究下JS的设计模式,看看能不能有些收获。。 单例嘛,页面上,dom中始终只能一个类的唯一的实例,如果某类已经有实例了, 就不再生成类的实例。 这个在电商网站中最常见的就是各种弹出窗口, 我的作法是搞了一个dom容器,然后把弹出容器的内容,做为参数传进来。 就像这样: function popup( popContent )
web前端教室
2018/02/06
6050
【javascript设计模式】4.单例模式
前端修罗场
2023/10/07
1440
JavaScript设计模式(4)——Singleton(单例)模式
Singleton模式的经典意义为:在该实例不存在的情况下,可以通过一个方法创建一个类来实现创建一个类的新的实例;如果实例已经存在,简单返回对该对象的引用。 在JavaScript中,Singleton充当共享资源命令空间,从全局命名空间中隔离出代码实现,从而为函数提供单一访问点。
悠扬前奏
2019/05/28
3410

相似问题

单例懒汉式中的同步锁问题?

0245

录制对象必须是单例吗?

1207

关于工单问题?

2789

请问项目中使用cos_sdk的COSClient是否单例模式?

11.1K

真实性核验单的盖章问题?

4415
相关问答用户
腾讯 | 技术专家擅长2个领域
擅长4个领域
高级数据分析师擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档