Ashura: Interaktionsmöglichkeiten mit und innerhalb von Objekten

Hallo.

Ich versuche mich gerade an einem Objekt in JS und würde gerne wissen, welche Interaktionsmöglichkeiten es dabei gibt.

Mir ist bekannt, dass „this“ innerhalb des Objektes sich auf ebendieses bezieht. Doch fehlen mir weitere Möglichkeiten, wie z. B. parent, um von einem Unterobjekt auf Methoden und Eigenschaften des Elternobjektes zugreifen zu können:

foo = {  
  bar : 'BAR',  
  baz : {  
    qux : function() {  
      alert(this.parent.bar);  
    }  
  }  
}

(Funktioniert natürlich nicht, aber nach einem solchen Konstrukt suche ich.)

Oder muss ich hier zwangsläufig den Namen des Objektes notieren?

foo = {  
  bar : 'BAR',  
  baz : {  
    qux : function() {  
      alert(foo.bar);  
    }  
  }  
}

Alternativ könnte ich natürlich auch die Referenz auf die jeweilige Eigenschaft als Argument übergeben, wenn ich qux() entsprechend abändere:

foo.baz.qux(foo.bar);

Außerdem suche ich noch nach einer Möglichkeit, die Referenzen auf die Eigenschaften eines Objektes abzufragen und die Anzahl der Eigenschaften zu ermitteln.
Beim Laden eines Dokumentes sollen automatisch alle Methoden eines Objektes per addEventListener geladen werden, ohne sie einzeln als EventListener hinzufügen zu müssen. (Ein Array mit Referenzen auf alle Methoden eines Objektes wäre mir daher am liebsten.)

Gibt es zu (selbst deklarierten) Objekten in JS eine gute Referen / Dokumentation, die sich mit dem von mir Genannten und mehr befasst?

Einen schönen Dienstag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
mathbr:del.icio.us/ mathbr:w00t/
  1. hi Ashura,

    hast du dir CKs sehr guten Feature-Artikel zum JavaScript Objekt-Modell schon reingezogen?

    (Bin mir nicht sicher, ob er deine Fragen im Detail beantwortet - sehr lesenswert ist er auf jeden Fall.)

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga.

      hast du dir CKs sehr guten Feature-Artikel zum JavaScript Objekt-Modell schon reingezogen?

      Zu meiner Schande muss ich gestehen, dass ich dies noch nicht getan habe; ich vergesse diesen Artikel immer wieder.

      Ich werde dies aber nun nachholen, danke dir.

      Einen schönen Dienstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/
  2. Mir ist bekannt, dass „this“ innerhalb des Objektes sich auf ebendieses bezieht. Doch fehlen mir weitere Möglichkeiten, wie z. B. parent, um von einem Unterobjekt auf Methoden und Eigenschaften des Elternobjektes zugreifen zu können:

    Gibt es nicht ein Objekt weiß nicht ob es ein Unterobjekt eines anderen ist.
    Zumal du hier auch keine Klassen definierst (wie in dem PHP Beispiel), in dem Falle gibt es sicher Tricks (die aber in dem alten Browser den ich hier hab nicht laufen)

    Außerdem suche ich noch nach einer Möglichkeit, die Referenzen auf die Eigenschaften eines Objektes abzufragen und die Anzahl der Eigenschaften zu ermitteln.

    for(var attr in objekt) ...

    Beim Laden eines Dokumentes sollen automatisch alle Methoden eines Objektes per addEventListener geladen werden, ohne sie einzeln als EventListener hinzufügen zu müssen. (Ein Array mit Referenzen auf alle Methoden eines Objektes wäre mir daher am liebsten.)

    da hilft dann typeof

    Gibt es zu (selbst deklarierten) Objekten in JS eine gute Referen / Dokumentation, die sich mit dem von mir Genannten und mehr befasst?

    Der Klassiker http://doc.rz.ifi.lmu.de/web/js/ClientGuideJS13/obj2.htm

    Struppi.

    1. Hallo Struppi.

      Gibt es nicht ein Objekt weiß nicht ob es ein Unterobjekt eines anderen ist.
      Zumal du hier auch keine Klassen definierst […]

      Ja, stimmt; ist mir mittlerweile auch aufgefallen.
      Ein „extends“ gibt es in JS (noch) nicht, weshalb ein Unterobjekt (bzw. der Autor) zwangsläufig den Namen des jeweiligen Elternobjektes kennt.

      […]

      for(var attr in objekt) ...

      […]

      da hilft dann typeof

      Mann, stehe ich heute auf dem Schlauch.
      Das hilft mir weiter, danke!

      Der Klassiker http://doc.rz.ifi.lmu.de/web/js/ClientGuideJS13/obj2.htm

      Ich habe es momentan nur kurz überflogen, es wirkt auf mich aber sehr brauchbar. Prototyping wird auch behandelt, was ich zwar momentan noch nicht zwangsläufig benötige, aber man weiß ja nie.

      Danke auch dir!

      Einen schönen Dienstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/ mathbr:w00t/