单例
单例是一个全局变量,运用单例能够更好的掌握全局变量,还能够应用分支手艺来封装浏览器之间的差别。网页中运用全局变量因为能够被重写风险很大。所以运用单例会更好的掌握全局变量。
懒加载
单例形式多半都是在加载剧本的时刻被建立出来。不过关于一些运用体式格局单例合适在用到的时刻被加载,所以须要一个能够懒加载的单例。
分支
是一种辨别运转环境差别的手艺,越发有用的针对加载的环境来定制代码,到达更好的灵活性。
代码
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());
总结
单例重要在于代码的整齐性,是全局变量变得可控,运用懒加载能够削减不必要的内存斲丧。分支进步不必环境的兼容性,只需推断一次环境而不必在每次运用都推断环境。