我有一部分插件使用私有变量并公开公共方法:
function myWorld()
{
var myPrivate=1;
this.do1=function (){alert(myPrivate);} ;
}
var a=new myWorld();
a.do1() //1
alert(a.myPrivate); //undefined (as it should be)
但我想防止再次这样做:new myWorld();
我知道的唯一选择是使用对象文字:
var myWorld=
{
myPrivate:1,
do1:function (){alert(this.myPrivate);}
}
alert(myWorld.myPrivate); //1 ( ouch....)
myWorld.do1() //1
问题
如何封装私有字段并仍然防止使用myWorld
被实例化>1 times
?