Derzeit bin erkläre ich JS-Klassen wie in diesem nächsten Beispiel:Erstellen Sie verschiedene Instanzen der Klasse
function X(a) {
this.x = a;
X.prototype.do = function() {
console.log(x);
}
}
Ich mag das ‚this‘ Schlüsselwort entfernen, so dass nun meine Klassen sehen aus wie in diesem Beispiel:
function X(a) {
var x = a;
X.prototype.do = function() {
console.log(x);
}
}
Das funktioniert gut, wenn ich eine Instanz der X-Klasse habe. Wenn ich versuche, mehr als eine Instanz zu schaffen, sehe ich das nächste Problem:
var x1 = new X(1);
x1.do(); // prints 1
var x2 = new X(2);
x2.do(); // prints 2
x1.do(); // prints 2 instead of 1
Das Problem mir verhindert, dass mehrere Instanzen der gleichen Klasse zu schaffen. Weiß jemand, warum dieses Problem auftritt und wie man es vermeidet?
Im ersten Beispiel wird 'x' nicht deklariert. Und ändern Sie niemals den Prototyp im Konstruktor. – Oriol