dr.house: Objektorientierung

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. 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

  2. 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