摘要:所以使用单例会更好的控制全局变量。懒加载单例模式多数都是在加载脚本的时候被创建出来。不过对于一些使用方式单例适合在用到的时候被加载,所以需要一个可以懒加载的单例。
单例
单例是一个全局变量,使用单例可以更好的控制全局变量,还可以利用分支技术来封装浏览器之间的差异。网页中使用全局变量由于可以被重写风险很大。所以使用单例会更好的控制全局变量。
懒加载单例模式多数都是在加载脚本的时候被创建出来。不过对于一些使用方式单例适合在用到的时候被加载,所以需要一个可以懒加载的单例。
分支是一种区分运行环境差异的技术,更加有效的针对加载的环境来定制代码,达到更好的灵活性。
代码var os = require("os"); Singleton = (function () { var uniqueInstance; // 单例实体 constructor = function () { // 单例初始化 return function Singleton () { var count = 10; function initCount(){ count = 10; } this.getCount = function () { return count; } this.setCount = function (value) { count = value; }; this.init=function(){ initCount(); } }; }(); return { getInstance: function () { if (!uniqueInstance) { // 判断是否初始化过 uniqueInstance = new constructor(); } return (os.type()==="Windows_NT")?uniqueInstance:undefined;//单例分支使单例有更高的兼容性 } } })(); var S=Singleton .getInstance();//懒加载,在这里开始加载和创建实例。 console.log(S.count); console.log(S.getCount()); S.setCount(550); console.log(S.getCount()); //S.initCount(); S.init(); console.log(S.getCount());总结
单例主要在于代码的整洁性,是全局变量变得可控,使用懒加载可以减少不必要的内存消耗。分支提高不用环境的兼容性,只需判断一次环境而不用在每次使用都判断环境。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87758.html
摘要:一什么是单例设计模式单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。 一、什么是单例设计模式 单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。 二、单例模式的技巧 利用$_instance私有变量来保存类的唯一实例化对象; 设计一个getInstance对外公开的函数,...
摘要:大潮来袭前端开发能做些什么去年谷歌和火狐针对提出了的标准,顾名思义,即的体验方式,我们可以戴着头显享受沉浸式的网页,新的标准让我们可以使用语言来开发。 VR 大潮来袭 --- 前端开发能做些什么 去年谷歌和火狐针对 WebVR 提出了 WebVR API 的标准,顾名思义,WebVR 即 web + VR 的体验方式,我们可以戴着头显享受沉浸式的网页,新的 API 标准让我们可以使用 ...
摘要:既能保证延迟加载,又能保证线程安全枚举上面的四种方案都有两个弊端需要额外的工作进行序列化,否则每次反序列化的结果都是一个新的实例可通过反射机制强行调用私有构造器实现创建多个对象而这种方案完美的解决了上述两种问题 一.什么是单例模式? 单例是指在程序中某个类只能有一个实例,一些管理器和控制器常被设计成单例模式(如Spring容器的bean实例默认都是单例模式存在的) 二.单例有什么好处?...
阅读 1797·2021-11-22 09:34
阅读 1117·2021-10-09 09:44
阅读 2952·2021-09-29 09:35
阅读 3596·2021-09-14 18:01
阅读 1444·2021-08-16 10:49
阅读 1073·2019-08-29 14:11
阅读 812·2019-08-29 12:47
阅读 3054·2019-08-26 13:47