揭示Prototype Pattern私有变量

时间:2013-11-03 08:47:06

标签: javascript revealing-prototype

我在JavaScript的Revealing Prototype Pattern中遇到私有变量的问题。我无法弄清楚如何在共享(单例)原型中使用多个不同函数中使用的私有变量,而不暴露它们。以下是我在JSFiddle中的含义示例。

问题在于使用var vthis.v。第一个是混淆所有实例的状态,但第二个是公开可见的。有没有办法让v private,并为每个单独的实例保留其状态?

1 个答案:

答案 0 :(得分:7)

没有办法用暴露的原型模式来做到这一点。

你只能这样做:

function MyClass() {
    var v = 1;
    this.getV = function() {
        return v;
    };
}

这就是为什么有一些顽固的爱好者为这种方法。

个人选项:在其前面粘贴下划线,并将其放在对象上:this._v。不要打JavaScript;用它。