Hallo,
Es geht um diesen Unterschied:
function MyClass() {
this._private;
}
MyClass.prototype.func = function() {return this._private;};
MyClass.prototype.tu_was = function(p) {this._private = p * p;};
var x = new MyClass();
>
> ~~~javascript
function MyClass() {
> var private;
> this.func = function() {return private;};
> this.tu_was = function(p) {private = p * p;};
> }
> var x = new MyClass();
>
Ähm, das liegt doch daran, dass diese Variable "private" durch das Closure konserviert werden muss. Der Performanceverlust, wie von molily in dem vorhin verlinkten Artikel beschrieben, entsteht durch den Einsatz des Closure. Dabei ist es nämlich recht egal, ob damit was OOP-mäßiges machst oder eine Funktion zurückgibst, die sich auf diese eingeschlossene Variable bezieht. Nicht dass wir jetzt wieder über Begrifflichkeitsdefinitionen reden wie "Umweg", "Emulation" oder "Simulation". Ich _verstehe_, dass man diese Begriffen unterschieliche Bedeutungen geben kann oder auch nicht. Insofern gehts mir hier eher darum, ob ich da noch etwas JS-spezifisches nicht kapiert habe. O.g., wie eben erläutert, scheint mir zumindest kein Teil eines Missverständnisses zu sein.
Gruß
jobo