5

是否可以在 JavaScript 中创建一个可以在原型中访问的私有变量?我尝试了以下显然不起作用的方法,因为bar只能从原型内部访问Foo ,而不能从原型内部访问。

function Foo() {
    var bar = 'test';
}

Foo.prototype.baz = function() {
    console.log(bar);
};

我知道我也不能使用this.bar = 'test',因为这会使财产公开AFAIK。如何使bar变量私有,但可以通过原型访问?

4

1 回答 1

10

你不能——不可能从那个范围之外访问一个词法范围的变量。

原型方法(根据定义)在所有实例之间共享,并且这样做必须存在于它们自己的范围内。

Douglas Crockford 的文章Private Members in JavaScript提供了一些有用的解释,但没有满足您要求的解决方案。

于 2012-11-02T21:44:55.150 回答