5

我在 JavaScript 的 Revealing Prototype Pattern 中遇到了私有变量的问题。我不知道如何在共享(单例)原型中的几个不同函数中使用私有变量,而不暴露它们。这是我在JSFiddle中的意思的示例。

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

4

1 回答 1

7

使用显示原型模式没有办法做到这一点。

您只能通过以下方式做到这一点:

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

这就是为什么这种方法有一些铁杆爱好者。

个人选择:在它前面加上一个下划线,然后把它放在对象上:this._v. 不要与 JavaScript 对抗;用它。

于 2013-11-03T08:50:21.850 回答