Struppi: Array sortieren mit Callback in einem Objekt

Beitrag lesen

mach's z.b. so:

myclass.prototype.sort = function ()

{
    my sortcb = function (p1, p2)
    {
    alert (this.wert);
    return true;
    }
    this.array.sort (sortcb);
}


>   
> Das klappt leider auch nicht. Die Möglichkeit hatte ich auch schon. "this.wert" ist immer noch "undefined"  
> Ich bekomm dadurch keinen Zugriff auf die Membervariablen der aufrufenden Klasse.  
  
Ok, das war ein Schnellschuss am frühen Morgen.  
  
~~~javascript
myclass.prototype.sort = function ()  
{  
     my self = this;  
     my sortcb = function (p1, p2)  
     {  
     alert (self.wert);  
     return true;  
     }  
     this.array.sort (sortcb);  
}

Jetzt liefert "alert (this.wert);" ein "undefined". Das führe ich mal dadrauf zurück, daß "this" nicht auf das erzeugte Objekt zeigt sondern auf den Prototypen der Funktion.

Nein this zeigt auf das Array.

Der Zeiger zeigt nicht auf das Array. Firefox meldet mir, daß es sich um [object window] handelt. Im VisualStudio siehts auch nach dem "window object" aus.

Jaja, logisch. Es ist ja keine Methode des Arrays, es ist nur eine Callback Funktion.

Wie gesagt, das Problem oder die Frage ist, wie du an diesen OO Ansatz rangehst. Gehört die Sortierfunktion zum Array oder deinem Objekt? Eigentlich nicht, denn es ist lediglich eine Hilfsfunktion die beim sortieren aufgerufen wird.

Struppi.

--
Javascript ist toll (Perl auch!)