[ascoders] Re: Speicherung von Referenz im Activation-Object

  • From: "bokel" <actionscript@xxxxxxxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Fri, 13 Dec 2002 07:40:50 +0100

Guten Morgen Michael et.al.,

das (Speicher-)Problem wird eher dadurch verursacht,
eine Funktion innerhalb einer anderen zu deklarieren,
weil dadurch alle lokalen Variablen der aeusseren
Funktion mit der lokalen Funktion gespeichert werden.

Vom OOP-Standpunkt her würde ich sagen, dass die
Speicherung in einer Eigenschaft die sauberere Lösung
darstellt. Aber wenn es darum geht, würde man sowieso
nicht Objekte innerhalb eines anderen Objekts "deklarieren".

Bewegt man sich also sauberkeitstechnisch eine Ebene
tiefer, dann gibt es nichts dagegen einzuwenden.

mfg r.

----- Original Message -----
From: "Michael Kneib" <listen@xxxxxxxxx>
> Guten Morgen die Damen (welche anwesend?) und Herren :)
>
> wenn ich ein Object in einem Object habe und vom inneren Object auf das
> Äussere zugreifen will, mache ich das ja in aller Regel über eine
> Referenzvariable im Object:
>
> //beispielscript----------------------------------
> function MyClass ()
> {
>  this.obj = new Object ();
>  this.obj.parent = this;  // hier die referenz
>  this.obj.objMethod = function ()
>  {
>   this.parent.myMethod ("objMethod");
>  };
> }
> MyClass.prototype.myMethod = function (arg)
> {
>  trace (arg + " ruft myMethod");
> };
> test = new MyClass ().obj.objMethod ();
> //-------------------------------------------------
>
>
> Das gleiche Ergebnis kann ich ja auch durch eine Speicherung der Referenz
im
> Activation-Object erreichen:
>
> //beispielscript----------------------------------
> function MyClass ()
> {
>  var parent = this;  // speicherung im activation-object
>  this.obj = new Object ();
>  this.obj.objMethod = function ()
>  {
>   parent.myMethod ("objMethod");
>  };
> }
> MyClass.prototype.myMethod = function (arg)
> {
>  trace (arg + " ruft myMethod");
> };
> test = new MyClass ().obj.objMethod ();
> //-------------------------------------------------
>
>
> Welche Vor- und Nachteile haben diese zwei Wege im Vergleich?
> Oder gibt es da eine grundsätzliche Empfehlung?

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

Other related posts: