Javascript中singleton的实现
2012-09-14 14:01
267 查看
最好的实现:
var langzi = window.langzi || {};
langzi.singleton = window.langzi.singleton || (function () {
var instance = null;
var constructor = function () {
return {
id: 1,
name: "test",
getMessage: function () {
console.log("id:" + this.id + ", name:" + this.name);
}
};
};
return {
getInstance: function () {
if (instance == null) {
instance = constructor();
}
return instance;
}
};
} ());
测试代码如下:
// test
var s1 = langzi.singleton.getInstance();
var s2 = langzi.singleton.getInstance();
s1.getMessage();
s2.getMessage();
console.log(s1 == s2);
按照Pro Javascript Design Pattern作者的说法,namespace都是singleton的应用。从广义来说,个人认为确实是的,但既然说到singleton,我觉得应该还是我上面的例子最具有代表性。
var langzi = window.langzi || {};
langzi.singleton = window.langzi.singleton || (function () {
var instance = null;
var constructor = function () {
return {
id: 1,
name: "test",
getMessage: function () {
console.log("id:" + this.id + ", name:" + this.name);
}
};
};
return {
getInstance: function () {
if (instance == null) {
instance = constructor();
}
return instance;
}
};
} ());
测试代码如下:
// test
var s1 = langzi.singleton.getInstance();
var s2 = langzi.singleton.getInstance();
s1.getMessage();
s2.getMessage();
console.log(s1 == s2);
按照Pro Javascript Design Pattern作者的说法,namespace都是singleton的应用。从广义来说,个人认为确实是的,但既然说到singleton,我觉得应该还是我上面的例子最具有代表性。
相关文章推荐
- 利用栈实现简单计算器的例子(Calculator)
- VB.NET实现DirectSound9 (8) 音效控制器
- jsp实现文件上传
- .net之旅-树型结构及相关功能的实现(41)
- datable添加列实现了.但是怎么把数据绑定到这个列中?????
- gridview 实现全选和反选--补充
- Java Web中的入侵检测及简单实现
- 动态会签中动态实现任务可见性
- 实现动态链接库
- C#实现屏幕键盘(软键盘 ScreenKeyboard)
- struts实现文件上传程序
- 一步步教你实现富文本编辑器(第四部分)
- 三种模拟自动登录和提交POST信息的实现方法
- 数据结构实现(插入排序、快速排序、统计排序类模板)
- 实现 SPY++ 的 FindWindow Tool 的高亮
- 中断实现LOOP功能
- Android项目之---ListView实现论坛管理效果
- 利用多线程实现对网站状态的监控
- 不一样的课程表,不一样的Excle--用Excle进行设计(20):顺序结构的实现