我有一部分使用私有变量并公开公共方法的插件:
JSBIN 1
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();
我知道的唯一选择是使用对象常量:
JSBIN 2
var myWorld=
{
myPrivate:1,
do1:function (){alert(this.myPrivate);}
}
alert(myWorld.myPrivate); //1 ( ouch....)
myWorld.do1() //1
题
如何封装私有字段并仍然防止
myWorld
的使用被实例化>1 times
? 最佳答案
闭包是定义范围的好工具:
var myWorld= (function(){
var myPrivate = 1;
return {
do1:function (){alert(myPrivate);}
}
}());
myWorld.do1();
您可能想看看免费的Learning JavaScript Design Patterns书
关于javascript - 仅创建一个构造函数实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15274927/