[ascoders] Re: AW: Klassenfrage

  • From: Jan Schluenzen <drummerguy@xxxxxxxxx>
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Mon, 25 Oct 2004 17:04:37 +0200

Hi Timo, danke für die Antwort.

Leider klappt das so nicht:

> this wäre in deinem Fall das XML Object.
> versuch doch mal "trace(this.hasChildNodes)"
> liefert "[type function]", oder?

Eben nicht. DAs ist ja das komische. This ist weder das XML Object,
noch die Klasse.

> man könnte es lösen, indem man dem XML Object
> eine Referenz auf die Instanz der Klasse mitgibt

Das geht natürlich, allerdings muss dann die aufgerufene Funktion
immer innerhalb der Klasse sein. Ich möchte das Ganze so flexibel
halten, dass als parameter z.B. auch _root.oBlabla.myCallback
übergeben werden kann, und das trotzdem noch funktioniert. Und das
tut's natürlich nicht, wenn man einen String ohne Pfad übergibt...
Sonst noch Ideen?

Jan



On Mon, 25 Oct 2004 15:11:39 +0200, Timo Hölzer <t.hoelzer@xxxxxxxxx> wrote:
> Hi Jan
> 
> this wäre in deinem Fall das XML Object.
> versuch doch mal "trace(this.hasChildNodes)"
> liefert "[type function]", oder?
> 
> Da Du nur die Referenz auf eine anonyme funktion
> an loadXML übergibst, bezieht sich this innerhalb
> der funktion immer aus das Object in dem sie ausgeführt
> wird. In deinem Fall "testXML".
> 
> man könnte es lösen, indem man dem XML Object
> eine Referenz auf die Instanz der Klasse mitgibt.
> 
> myClass = function() {
>        this.dummyProp = "foo";
> };
> mcClass.prototype = new Object();
> myClass.prototype.loadXML = function(path, callback) {
>        var testXML = new XML();
>        testXML.ignoreWhite = true;
>        testXML.dummyProp = "bar";
>        /************************************
>        Referenz auf Klassen Instanz
>        **************************************/
>        testXML._parent = this;
>        testXML.callback = callback;
>        /************************************
>        **************************************/
>        testXML.onLoad = function(success) {
>                if(success) {
>                        this._parent[callback](this) // this entspricht 
> referenz auf textXML
>                }
>        };
>        testXML.load(path);
> };
> myClass.prototype.doMoreStuff = function() {
>        trace(this.dummyProp);
> };
> 
> var bla = new myClass();
> bla.loadXML("../dummy.xml", "doMoreStuff");
> 
> Gruß
> Timo H.
------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: