代码改变世界

JavaScript中的Singleton模式

2009-06-27 11:11  Peter Yao  阅读(283)  评论(2编辑  收藏  举报

关于Singleton模式,可能又能知道,不知道的也没有什么关系,在我的gof23模式中,会有所讲解,当然现在还没有出来!,敬请期待!

好,下面我简单说一下,什么是Singleton模式,它就是只能实例化一个对象,也就是里面的构造函数是以private修饰的!好,接下来,大家看这么一个实例:

 

function TradingMode()
{
this.mode=MODE_RED;
}
TradingMode.prototype.setMode=function() //这儿使用了prototype机制对TradingMode注入方法
{
}
提供一个全局变量作为一个伪Singleton

TradingMode.instance=new TradingMode();
但是这无法阻止恶意代码调用构造函数,另一方面,我们可以不适用prototype,手动创建整个对象:

var TradingMode=new Object();
TradingMode.mode=MODE_RED;
TradingMode.setMode=function(){}

var TradingMode=
{
mode:MODE_RED,
setMode:function(){}
};

实例实现Singleton
Function getTradingMode()
{
if(!top.TradingMode)
{
top.TradingMode=new Object();
top.TradingMode.mode=MODE_RED;
top.TradingMode.setMode=function(){...}
}return top.TradingMode;
}

 

这样就实现了一个JavaScript的 Singleton模式,大家可以自己做一下,有什么疑问的,可以拿出来一块谈论!

我是Peter,.谢谢支持!!