时间:2014-01-29 来源:

JavaScript设计模式学习Singleton

复制代码 代码如下:

/* Basic Singleton. */
var Singleton = {
attribute1: true,
method2: function(arg) {
}
};
单件模式最主要的用途之一就是命名空间:
/* GiantCorp namespace. */
var GiantCorp = {};
GiantCorp.Common = {
// A singleton with common methods used by all objects and modules.
};
GiantCorp.ErrorCodes = {
// An object literal used to store data.
};
GiantCorp.PageHandler = {
// A singleton with page specific methods and attributes.
};
利用闭包在单件模式中实现私有方法和私有变量:
GiantCorp.DataParser = (function() {
// Private attributes.
var whitespaceRegex = /\s+/;
// Private methods.
function stripWhitespace(str) {
return str.replace(whitespaceRegex, but can access the
// members in the closure created above.
return {
// Public method.
stringToArray: function(str, stripWS) {
if(stripWS) {
str = stripWhitespace(str);
}
var outputArray = stringSplit(str, delimiter);
return outputArray;
}
};
})(); // Invoke the function and assign the returned object literal to
// GiantCorp.DataParser.
实现Lazy Instantiation 单件模式:
MyNamespace.Singleton = (function() {
var uniqueInstance; // Private attribute that holds the single instance.
function constructor() { // All of the normal singleton code goes here.
...
}
return {
getInstance: function() {
if(!uniqueInstance) { // Instantiate only if the instance doesn't exist.
uniqueInstance = constructor();
}
return uniqueInstance;
}
}
})();
MyNamespace.Singleton.getInstance().publicMethod1();
点击次数:1591
作者:
web前端行业资讯
Web new NewsList
谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日继“Angel”开源后,腾讯又开放TDinsight机器学习平台 ,,2017年12月21日谷歌母公司研发“闪光”网络技术无需铺设线缆 ,,2017年12月21日微软投资5千万美元利用人工智能对抗气候变化 ,,2017年12月21日谷歌中国2017:面向开发者的1年AI先行的1年 ,,2017年12月21日GreenKey加入Symphony软件基金会,将开源语音软件 ,,2017年12月21日腾讯发现者揭秘:怎么应对TensorFlow的安全风险,修复有多难 ,,2017年12月21日清华新成立两大交叉研究机构探索智能与未来 ,,2017年12月21日微软将AI融入生产力工具和搜索引擎与其它巨头竞争 ,,2017年12月21日Gfycat将利用机器学习技术创建高分辨率GIF动图 ,,2017年12月21日安全软件公司Avast开源化机器码反编译器RetDec ,,2017年12月21日谷歌开源TFGAN,让训练和评估GAN变得更加简单 ,,2017年12月21日社区对模块化不感兴趣时隔三周经典版FedoraServer27发布 ,,2017年12月21日Windows10加入OpenSSH客户端 ,,2017年12月21日FirefoxQuantum发布一个月安装量1.7亿 ,,2017年12月21日吴恩达宣布创业新项目已与富士康达成战略合作 ,,2017年12月21日Scala入门系列(十二):隐式转换2017年12月20日speedment入门教程2017年12月20日SLAM入门笔记(1):特征点的匹配2017年12月20日深入浅出了解frame和bounds2017年12月20日ligerGridAjax分页获取排序详细介绍 【云计算】2015年04月24日关于登录加密问题的一些讨论 【移动开发】2015年04月13日PageRank算法的MapReduce实现 【移动开发】2014年12月23日curl命令备注 【互联网】2015年06月17日【连通图|关节点】无向图关节点和桥Tarjan【移动开发】2014年12月22日MinimumWindowSubstring 【移动开发】2015年01月09日POJ3984迷宫问题广搜迷宫解法【综合】2014年11月04日比较详细的关于javascript解析json的代码2014年01月29日”Tomcatversion5.5onlysupportsJ2EE1.2,1.3,and1.4Webmodules“解决方案【综合】2015年07月15日图像处理--彩色变换补色处理 【移动开发】2015年03月17日使用终端命令关闭Mac电脑开机启动音 【编程语言】2015年08月29日Splay入门题【移动开发】2015年08月26日几个Python字符串方法浅析【编程语言】2015年01月09日js每隔5分钟执行一次ajax请求的实现方法2014年01月29日lintcode:uglynumber 【移动开发】2015年07月06日百度地图SDKjava.lang.UnsatisfiedLinkError:Couldn'tloadBaiduMapSDK【移动开发】2015年02月02日HUD2188悼念512汶川大地震遇难同胞——选拔志愿者(巴什博奕)【数据库】2015年06月03日SQL优化--逻辑优化--数据库的约束规则与语义优化 【互联网】2015年02月15日asp.net反射减少代码书写量2014年01月29日利用Mask将不规则区域保存下来算法实现 【数据库】2015年07月09日JS的基础类型与引用类型 【架构设计】2015年07月21日MSP430G2553电子时钟实验 【综合】2015年07月10日开始使用ASP脚本语言2014年01月28日HDU4380FarmerGreedy计算几何+bitset【编程语言】2014年11月10日Web资源优化工具,wro4j1.4.6发布 1,收藏 ,,2016年06月23日uva10397ConnecttheCampuskruskal算法变形 【数据库】2015年05月18日面向模式的软件体系结构(3)--管道与过滤器 【综合】2015年08月28日CSU1529EquatorDP【综合】2015年03月24日1QPushButton的使用,QLineEdit的使用,设置组件位置,布局(QHBoxLayout,QGridLayout)【编程语言】2014年12月16日设置题注、脚注与尾注——Word2007书籍排版完全手册(七)2014年01月28日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)