[ascoders] Re: Frage zum Speicherort von Objekten AS 2.0

  • From: Timo Stamm <t.stamm@xxxxxxxxxx>
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Fri, 11 Feb 2005 19:52:29 +0100

Hallo Andreas.


Wo etwas gespeichert ist interessiert bei Actionscript garnicht. Du hast ja eh keinen direkten Zugriff auf den Speicher.



Kleines Tutorial:

new foo();

Erzeugt Instanz von der Klasse foo. Damit kannst du aber nichts anfangen, weil du dem Objekt keinen Namen gegeben hast.

f = new foo();

Jetzt weiss Actionscript dass der identifier f auf das neue Objekt zeigt. Das nennt sich Referenz.

Wenn du jetzt
delete f;
machst, gibt es keine Referenz mehr auf das Objekt, und bei der nächsten garbage collection wird sein Speicher freigegeben.


Wenn eine andere Referenz auf das Objekt besteht, wird es nicht gelöscht. Beispiel:

f = new foo();
g = f;
delete f;

Die Variable g weist jetzt immer noch auf das neue Objekt.


Wichtig ist weiterhin die Unterscheidung von primitives/immutables und objects. Weitere Infos siehe hier: http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00000786.html#416367



Das kannst du jetzt aber alles wieder vergessen, denn removeNode koppelt den Knoten nur aus dem XML-Konstrukt aus. Das Objekt wird nicht entfernt.


cloneNode ist dafür da das Referenz-Problem zu Umgehen wenn du einen Knoten in eine zweites XML-Objekt einfügen willst. Sonst würde nämlich das ursprüngliche Objekt auch geändert wenn du am neuen Teil einen Node änderst, der aus dem alten Objekt stammt.


Gruss, Timo

Andreas Sedlmayer wrote:
         Danke! aber das hab ich ja auch gemacht. Dass es den Klon nicht 
braucht,
         wußte ich nicht und da bin ich mir auch noch nicht ganz
         sicher. Vor allem, weil die Frage immer noch ist: wo ist der
         Klon, bzw. die Kopie gespeichert?


--------------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
RSS      : //www.freelists.org/archives/ascoders/feed.rss
Optionen : //www.freelists.org/list/ascoders
--------------------------------------------------------------

Other related posts: