Ergebnis 1 bis 4 von 4
-
08-07-2008, 10:18 #1
Grünschnabel
- registriert
- 04-07-2008
- Beiträge
- 5
JS OOP: Objekt direkt im Objekt ansprechen
Hallo. Ich will mein Verständnis über JS OOP erweitern und habe da eine kleine Frage zu folgendem Beispiel:
Code:var myObj = { var1 : 'testvar1', subObj : { var2 : 'testvar2', func : function() { alert(myObj.var1+', '+this.var2); } } }; myObj.subObj.func();
-
08-07-2008, 12:00 #2
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: JS OOP: Objekt direkt im Objekt ansprechen
Aus Sicht von OOP hast du hier kein Objekt. es ist lediglich ein Datenbobjekt oder eine hashtable. Wenn du wirklich ein Objekt benutzen möchtest (und hier das sieht so aus wie ein singleton Objekt), dann baue es so:
PHP-Code:var myObj = new function() {....
};
-
08-07-2008, 13:04 #3
Grünschnabel
- registriert
- 04-07-2008
- Beiträge
- 5
AW: JS OOP: Objekt direkt im Objekt ansprechen
Danke für die Antwort, aber das ist mir eigentlich bewusst. Ich benutze aber die oben genannte Variante weil ich im eigentlichen Sinne eine Bibliothek habe. Diese Bibliothek hat verschiedene Unter-Objekte, welche verschiedene Arten von Methoden beinhalten. Diese sind unter Umständer noch tiefer kategorisiert. Mir geht es nur darum wie ich aus diesem Objekthaufen aus einem sehr tiefen Objekt auf Werte der Elternobjekte zugreifen kann, ohne dazu den Objektnamen des eigentlichen Objektes ansprechen zu müssen.
Hier mal eine kleine Struktur:
Code:var lib = { events : { // Event-spezifische Methoden add : function(){ ... }, remove : function(){ ... } }, client : { // Client-spezifische Methoden browser : function() { ... } }, values : { // Mathematische Methoden max : function() { ... }, min : function () { ... }, sum : function () { ... } } }
Code:var lib = function() { this.events = { // Event-spezifische Methoden add : function(){ ... }, remove : function(){ ... } }; this.client = { // Client-spezifische Methoden browser : function() { ... } }; this.values = { // Mathematische Methoden max : function() { ... }, min : function() { ... }, sum : function() { ... } }; }; var myLib = new lib();
Meine Frage ist jetzt nur ob es vllt sowas wie this.this gibt, womit ich quasi aus einem Objekt rausspringen kann um direkt auf das nächste zuzugreifen. Was ich vorhabe hat Ähnlichkeit mit den DOM Methoden (zB el.parentNode.nextSibling.firstChild).Geändert von danomator (08-07-2008 um 13:08 Uhr)
-
08-07-2008, 13:35 #4
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: JS OOP: Objekt direkt im Objekt ansprechen
Ich schrieb new function(), oben sah es noch so aus, als ob du ein singleton willst, jetzt zeigst du mir einen Konstruktor. entweder oder.
Aber new function hat darüber hinaus den Vorteil, dass du dort Code ausführen kannst und private Variabeln deklarieren, dein Konstrukt ist dafür ungeignet. Das brauchst du aber um dein vorhaben umzusetzen.
Ähnliche Themen
-
Einführung OOP in Javascript (und Actionscript)
Von Albu im Forum JavaScript-FAQAntworten: 15Letzter Beitrag: 05-01-2004, 23:05
Lesezeichen