JavaScript单例问题?

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

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

new function(){} 

然后创建一个伪构造函数

var singleton = {
   dothis: function(){},
   dothat: function(){}
}

阳光思雨阳光思雨提问于
坏蛋为你我手码我心回答于
已采纳

可以实现利用闭包:

var myInstance = (function() {
  var privateVar;

  function privateMethod () {
    // ...
  }

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

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

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
}

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

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

singleton() == singleton(); // true

也将返回false:

({}) == ({}); // false
new Object() == new Object(); // false

回答过的其他问题

NoSQL和Hadoop之间的关系是什么?

坏蛋为你我手码我心
NoSQL只是Hadoop下的一项技术,Hadoop包含以下内容 MapReduce是处理分布在多个机器或节点上的数据的引擎 HDFS是分布式文件系统。用外行人的话来说,你可以说是将多台计算机连接在网络上,他们的存储设备(硬盘)合并为一个存储器或者说一个硬盘。 因此,理论上HDF...... 展开详请

如何利用云计算加固服务器,防止SSH攻击?

坏蛋为你我手码我心
使用TCP Wrappers可以阻止或允许应用服务仅对某些主机开放,给系统在增加一道安全屏障。这部分设置共涉计到两个文件:hosts.allow和 hosts.deny。 将那些明确允许的请求添加到/etc/hosts.allow中。如系统仅允许IP地址为192.168.0.15...... 展开详请

乘车码小程序中应用了腾讯云哪些黑科技?

坏蛋为你我手码我心
其实他之所以这么快捷并且在高峰期不会卡,是因为他使用的是“先乘车,在付钱”的模式。 什么意思呢?就是你扫码上车的时候,扣的钱是从腾讯这里打到公交公司手上,过一会儿才从你手上打钱给腾讯的账户。 这种方式的好处就是实时处理速度大大提升,方便广大群众不因为网络问题耽搁了时间,这里点赞一...... 展开详请

腾讯云是如何保障客用户安全的?

坏蛋为你我手码我心

想现在的游戏业务,腾讯云能提供立体游戏安全方案,提供手游APP安全服务、游戏网络及内容保护服务。

对于直播答题类APP的欺诈违法行为目前都采取了哪些应对措施?

坏蛋为你我手码我心

直播答题的这些黑产业链估计只是一个开始,后续还会面临更大的压力。

如何正确地在Python中获取异常消息

坏蛋为你我手码我心

我有同样的问题。我认为最好的解决方案是使用log.exception,它会自动输出出堆栈跟踪和错误消息,例如:

try:
    pass
    log.info(Success')
except:
    log.exception('Failed')

关于作者

所属标签

扫码关注云+社区