Hallo Skeeve.
Ich bin der Meinung, dass dies ein Bug in Gecko-basierten Browsern ist.
Ich bin der Meinung, darüber läßt sich trefflich streiten ;-)
Jetzt sicher nicht mehr, oder?
form.myfield ist ja nichts anderes als ein Speicherplatz. Im Prinzip nur ein Pointer auf das Kindelement. Wenn das Kind nun aus dem Baum entfernt wird, muß nicht notwendigerweise auch der Pointer gelöscht werden.
Doch, denn ansonsten bleibt eine Leiche im Speicher.
Wie ist es z.B. mit
var myf= form.myfield;
form.removeChild(form.myfield);Sollte danach auch myf undefined sein?
Jawohl.
Und warum sollte das anders sein als:
var myf= form.removeChild(form.myfield);
Hier ist doch myf das "old chilf", richtig?
Ja, und das per Definition, da removeChild immer das entfernte Elementobjekt zurückgibt.
Und als letztes:
wenn "form.removeChild(form.myfield)" form.myfield auf undefined setzt,
Es wird nicht auf undefined gesetzt, sondern das jeweilige Objekt wird aus Dokumentenbaum entfernt. Beim Zugriff auf dieses nicht mehr existente Objekt greift gibt die JS-Engine den Standardwert für nicht vorhandene Objekte zurück, welcher eben „undefined“ ist.
sollte dann nicht konsequenterweise eine Zuweisung auf form.myfield eine Auswirkung auf den Baum haben?
Hat es ja auch. Damit kannst du wiederum dem form-Objekt über die myfield-Eigenschaft etwas neues anhängen.
Einen schönen Sonntag noch.
Gruß, Mathias
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
debian/rules