Was ist der richtige/beste Weg, um eine JavaScript-Klasse zu erweitern, so dass Klasse B alles von der Klasse A erbt (Klasse B erweitert A)?Javascript erweitert Klasse
Antwort
Werfen Sie einen Blick auf Simple JavaScript Inheritance und Inheritance Patterns in JavaScript.
Die einfachste Methode ist wahrscheinlich funktionale Vererbung, aber es gibt Vor- und Nachteile.
Zweiter Link ist tot. – Jarrett
Der zweite Link ist jetzt hier: http://bolinfest.com/javascript/inheritance.php –
Douglas Crockford hat einige sehr gute Erklärungen der Vererbung in JavaScript:
- prototypal inheritance: die 'natürliche' Art und Weise, Dinge zu tun, in JavaScript
- classical inheritance: näher an, was Sie in den meisten OO-Sprachen finden, aber Art läuft von gegen den Strich JavaScript
extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
};
Sie könnten auch Filter in die for-Schleife einfügen.
Dies ist weder was OP gefragt noch korrigieren "erweitern" - Sie sollten über Object.keys iterieren oder zumindest nach hasOwnProperty –
Needs hasOwnProperty überprüfen und überschreiben Methoden und Eigenschaften, wenn sie identisch sind, ohne dass die Superklassenmethode später aufgerufen werden kann. –
Aktual ... gibt es einen anderen Weg als b.prototype = new a; – xpepermint
JavaScript hat keine Klassen. Daher macht diese ganze Frage keinen Sinn. Sprichst du über Java? Oder ActionScript? Diese * haben * Klassen, aber sie haben absolut nichts mit JavaScript zu tun. Oder sprichst du von einer JavaScript-Bibliothek, die klassenbasiertes OO in JavaScript implementiert, wie zum Beispiel MooTools? In diesem Fall hängt die Antwort davon ab, von welcher Bibliothek Sie sprechen. –
Es gibt mein Klassenobjekt: https://github.com/reduardo7/sjsClass/blob/master/sjsclass.js –