Vielen Dank!
+hilfreich vom Unregistrierten.
Habe dein Beispiel mal, um es zu verstehen, in mein Klaus-Beispiel konvertiert.
Ich verwende JSON.stringify, weil [object Object] so unleserlich ist.
function log() { // Tipparbeit sparen
s = '';
for(c=0; c<arguments.length; c++) {
if (c == 0) {
s += arguments[c]+': ';
} else {
s += JSON.stringify(arguments[c]);
if (c < arguments.length-1) {
s += ',';
}
}
}
console.log(s);
}
function ClassicKlaus(alter){
if(alter) {
this.alter=alter;
} else {
this.alter=35;
}
}
function SmartKlaus(alter) {
if(alter && alter!==this.alter) {
this.alter=alter;
}
}
SmartKlaus.prototype.alter=30;
var ck1 = new ClassicKlaus();
var ck2 = new ClassicKlaus();
var ck3 = new ClassicKlaus(40);
var sk1 = new SmartKlaus;
var sk2 = new SmartKlaus;
var sk3 = new SmartKlaus(40);
console.log('Alles über Klaus:')
log('Classic Klaus 1, 2 und 3', ck1, ck2, ck3);
log('Smart Klaus 1, 2 und 3', sk1, sk2, sk3); // bei sk2 und 3 wird Speicherplatz gespart ...
log('Smart Klaus Prototype', SmartKlaus.prototype); // .. weil stattdessen hier nachgeguckt wird
console.log('Das Alter jedes Klaus:')
log('Classic Klaus 1, 2 und 3', ck1.alter, ck2.alter, ck3.alter);
log('Smart Klaus 1, 2 und 3', sk1.alter, sk2.alter, sk3.alter);
log('Smart Klaus Prototype', SmartKlaus.prototype.alter);
SmartKlaus.prototype.alter=35
console.log('Nochmal das Alter jedes Klaus (jetzt mal ehrlich):')
log('Classic Klaus 1, 2 und 3', ck1.alter, ck2.alter, ck3.alter);
log('Smart Klaus 1, 2 und 3', sk1.alter, sk2.alter, sk3.alter);
log('Smart Klaus Prototype', SmartKlaus.prototype.alter);
Gruß, Klaus, der Smarte :-D