G
gform
Guest
Hallo,
ich schreibe gerade eine kleine "Klasse" in Javascript und will das Problem das ich dabei habe mal in diesem einfachen Beispiel zeigen.
Das funktioniert auch, jedoch steht im MDN, dass man aus Performancegründen die beiden Methoden add und getN nicht im Funktionsrumpf definieren soll, sondern so:
Nun haben aber add und getN keinen Zugriff auf n. Wie kann man das umgehen?
this.n kommt nicht in Frage, da n privat sein soll.
Gruß
ich schreibe gerade eine kleine "Klasse" in Javascript und will das Problem das ich dabei habe mal in diesem einfachen Beispiel zeigen.
Code:
function Number() {
var n = 0;
this.add = function(x) {
n += x;
};
this.getN = function() {
return n;
};
}
var num = new Number;
num.add(10);
num.getN(); // 10
Das funktioniert auch, jedoch steht im MDN, dass man aus Performancegründen die beiden Methoden add und getN nicht im Funktionsrumpf definieren soll, sondern so:
Code:
function Number() {
var n = 0;
}
Number.prototype = {
add: function(x) {
n += x;
},
getN: function() {
return n;
}
};
Nun haben aber add und getN keinen Zugriff auf n. Wie kann man das umgehen?
this.n kommt nicht in Frage, da n privat sein soll.
Gruß