snorri: Objektorientiert mit JavaScript?

Hallo!

Bisher habe ich in JavaScript noch nie mir selbstdefinierten
Objekten gearbeitet. Aber jetzt habe ich eine Idee, die
sinnvollerweise objektorientiert gelöst werden sollte.

SelfHTML erklärt mir nun zwar, wie ich eine Objektklasse anlege und
einer Instanz über die Konstruktorfunktion Werte zuweise -- aber wie
lege ich nun Funktionen für die Klasse an? Mit anderen Worten: Mein
Objekt hat zwar Eigenschaften, aber keine Methoden. Auch mein
JavaScript-Buch schweigt sich darüber aus. Geht das überhaupt?

Adieu,

snorri

  1. Moin Moin !

    http://devedge.netscape.com/library/manuals/2000/javascript/1.5/reference/function.html
    http://www.javascriptkit.com/javatutors/proto.shtml
    http://aktuell.de.selfhtml.org/artikel/javascript/oomodell/index.htm
    http://aktuell.de.selfhtml.org/artikel/javascript/diagramme/index.htm
    http://aktuell.de.selfhtml.org/artikel/javascript/table-obj/index.htm

    Reicht das erstmal oder willst Du noch mehr? ;-)

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
  2. Hallo nochmal!

    Ich hab's gerade durch Zufall gefunden: "prototype" war das
    Stichwort, das mir fehlte ...

    Adieu,

    snorri

  3. Hallo snorri,

    vielleicht ist auch dieser Link hilfreich:
    http://www.webmasterbase.com/article/470

    Ciao
    Ottogal

  4. SelfHTML erklärt mir nun zwar, wie ich eine Objektklasse anlege und
    einer Instanz über die Konstruktorfunktion Werte zuweise -- aber wie
    lege ich nun Funktionen für die Klasse an? Mit anderen Worten: Mein
    Objekt hat zwar Eigenschaften, aber keine Methoden. Auch mein
    JavaScript-Buch schweigt sich darüber aus. Geht das überhaupt?

    Klar.

    Zwei Möglichkeiten:

    Variante A

    function myClass()
    {
        this.name = "test";
        this.func = myClass_func;
    }

    function myClass_func()
    {
         alert(this.name);
    }

    Variante B:

    function myClass()
    {
        this.name = "test";
    }

    myClass.prototype.func = function()
    {
         alert(this.name);
    }

    Struppi.

    1. Hallo Struppi,

      gibt es zwischen diesen beiden Notationen eingentlich einen Unterschied?

      snorri