gruss Karl,
... ich schreibe eine Art GUI-Framework. Es soll Elemente wie
Forms, Edits, Labels, Scrollbars etc. enthalten.Beispiel in JavaScript:
form1 = new TForm();
...Dieser Code soll ein (mit der Maus verschiebbares) Dialogfeld
mit einem Button erzeugen. Das ist natürlich nur ein sehr
einfaches Beispiel. ... Die Implementierung der Methode könnte
so einfach sein:function setCaption(fText)
{
el = document.getElementById(this.OBJEKTNAME);
el.style.value = fText;
}... OBJEKTNAME steht stellvertretend für ein Feld des Objekts -
was es aber scheinbar nicht gibt.
so wie es aussieht, kapselst Du die Logik eines oder einer gruppe
von DOM-knoten in einem JavaScript-objekt. die initialisierung des
von Dir beispielhaft angegebenen objekts vom typ "tform" erledigt
Deine konstruktorfunktion "TForm". Du musst nur sicherstellen, dass
genau dort, oder meinetwegen auch in einer initialisierungsmethode
das "tform"-objekt mindestens einen der betroffenen DOM-knoten
als referenz an sich binden kann - z.b.:
~~~javascript var TForm = function (nodeObj) {
this.domNode = nodeObj;
//your code;
};
die beispielhafte methode "setCaption" liesse sich dann
so umsetzen:
~~~javascript
TForm.prototype.setCaption = function (fText) {
this.nodeObj.style.value = fText;
};
Ich habe es jetzt anders gelöst.
und wie?
In diesem Fall wäre es eben sehr praktisch, wenn die IDs von
INPUT-Elementen oder DIVs die Namen der JavaScript-Objekte,
die sie repräsentieren, tragen würden.
referenzen auf die von meinem JavaScript-objekt zu beeinflussenden
dom-knoten sind in meinen augen naheliegender, da ich diese bei der
objektinitialisierung sowiso "kennen" muss.
by(t)e by(t)e - peterS. - pseliger@gmx.net
"Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive." - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]