我在JavaScript的Revealing Prototype Pattern中遇到私有变量的问题。我无法弄清楚如何在共享(单例)原型中使用多个不同函数中使用的私有变量,而不暴露它们。以下是我在JSFiddle中的含义示例。
问题在于使用var v
与this.v
。第一个是混淆所有实例的状态,但第二个是公开可见的。有没有办法让v private,并为每个单独的实例保留其状态?
答案 0 :(得分:7)
没有办法用暴露的原型模式来做到这一点。
你只能这样做:
function MyClass() {
var v = 1;
this.getV = function() {
return v;
};
}
这就是为什么有一些顽固的爱好者为这种方法。
个人选项:在其前面粘贴下划线,并将其放在对象上:this._v
。不要打JavaScript;用它。