Accédez aux variables «privées» du prototype

Est-il possible en JavaScript de créer une variable privée à laquelle on peut accéder en prototype? J'ai essayé ce qui évidemment ne fonctionne pas , car la bar n'est accessible qu'à Foo et non à l'intérieur du prototype.

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

Je sais que je ne peux pas utiliser this.bar = 'test' , car cela rendrait la propriété publique AFAIK. Comment rendre la bar variable privée, mais accessible par un prototype?

Vous ne pouvez pas – il est impossible d'accéder à une variable de portée lexicale de l'extérieur de cette portée.

Les méthodes de prototype sont (par définition) partagées entre toutes les instances, et elles doivent exister dans leur propre domaine.

L'article de Douglas Crockford, les Membres privés en JavaScript, fournit des explications utiles, mais aucune solution répond à vos besoins.