说我有一个名为Foo的
JavaScript函数/类,它有一个名为bar的属性.我想要在类被实例化时提供bar的值,例如:
var myFoo = new Foo(5);
将myFoo.bar设置为5.
如果我做一个公共变量,那么这个工作,例如:
function Foo(bar) { this.bar = bar; }
但是如果我想让它私有,例如:
function Foo(bar) { var bar; }
那么我将如何设置私有变量条的值,使其可用于所有内部函数的foo?
解决方法
您必须将所有需要访问私有变量的函数放在构造函数中:
function Foo(bar) { //bar is inside a closure now,only these functions can access it this.setBar = function() {bar = 5;} this.getBar = function() {return bar;} //Other functions } var myFoo = new Foo(5); myFoo.bar; //Undefined,cannot access variable closure myFoo.getBar(); //Works,returns 5