javascript中的所有对象属性是公有的,不过在函数中定义的变量可以认为是私有的。
1.在构造函数中添加公有方法
function CreateObj(){
var privateVar = 0;
function privateFun(){
return false;
}
this.publicFun = function(){
privateVar++;
return privateFun();
}
}
虽然创建了特权方法publicFun可以访问私有变量,但是弊端是每次调用构造函数都会重新创建变量和两个方法。
2.静态私有变量
(function(){
var privateVar = 0;
function privateFun(){
return false;
}
myObj=function(){};
myObj.prototype.publicFun = function(){
privateVar++;
return privateFun();
}
})();
在一个匿名函数中创建了myObj这个全局变量,创建的实例可以共享私有变量和函数。