Objektorientierung
dr.house
- javascript
Hallo,
kann man irgendwie Funktionen in Objekten zusammenfassen, dann vererben und um Funktionen/Methoden erweitern? Falls nicht, geht das in node.js?
VG,
dr.house
Hallo,
kann man irgendwie Funktionen in Objekten zusammenfassen, dann vererben und um Funktionen/Methoden erweitern? Falls nicht, geht das in node.js?
VG,
dr.house
1. function cClass
2. {
3. function method(){}
4. }
5. var objClass = new cClass()
6.
7. objClass.protorype = {
8. dynamicMethod : function(){}
9. }
1 - 4 definiert eine Klasse mit einer Methode
5 Initialisiert diese Klasse
7 - 9 hängt per Prototype dynamisch an dieses Objekt noch eine Methode dran.
10. Gruß
11. T-Rex
Hallo,
kann man irgendwie Funktionen in Objekten zusammenfassen, dann vererben und um Funktionen/Methoden erweitern? Falls nicht, geht das in node.js?
Du kannst mit Konstruktoren und Prototypen eine pseudoklassische Vererbung umsetzen:
http://molily.de/js/organisation-instanzen.html
http://molily.de/weblog/javascript-pseudoklassen
Oder du verzichtest auf Konstruktoren und verwendest einfache Objekte (Objekt-Literale) als Prototypen für andere Objekte. Das geht schnell mit Object.create aus ECMAScript 5.
// Erzeuge ein Objekt
var obj = {
f1: function () {
alert('f1');
}
};
// Erzeuge ein zweites Objekt, welches das erste als Prototyp hat
var obj2 = Object.create(obj);
obj2.f2 = function () {
alert('f2');
};
obj2.f1();
obj2.f2();
Oder dasselbe mit einem Property Descriptor:
var obj2 = Object.create(obj, {
f2: {
value: function () {
alert('f2');
},
writable: true, enumerable: true, configurable: true
}
});
Object.create wird nicht in allen Browsern bereits voll unterstützt, die V8-Engine von Node.js unterstützt es jedenfalls.
Mathias