molily: Objektorientierung

Beitrag lesen

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