ScaraX: Objekt aus jQuery-Code aufrufen

Hallo

ich habe folgendes Problem:

Ich habe ein Objekt, in dem in einer Methode ein jQuery-Block ausgeführt wird.

das Ganze sieht in etwa so aus:

  
function myClass()  
{  
   this.data = 'test';  
   methode = new function()  
   {  
      $('drop').droppable({  
         drop: function(ui,e) {  
  
           HIER MÖCHTE ICH AUF 'this.data' von myclass zugreifen, aber wie?  
           mit this.data funktioniert das nicht, mit myclass.data auch nicht :(  
         }  
      });  
   }  
}  
  
myclass = new myClass;  
//alternativ  
var myclass = new myClass  

Ich hoffe ich wisst was ich meine ;)

Danke schonmal

MfG
ScaraX

  1. statt
    methode = new function()
    heißt es natürlich
    this.methode = new function()

  2. Hallo,

    function myClass()
    {

    Hier legst du eine lokale Variable an, in der eine Referenz auf das Instanzobjekt gespeichert wird:

    var instanz = this;

    this.data = 'test';
       methode = new function()
       {
          $('drop').droppable({
             drop: function(ui,e) {

    HIER MÖCHTE ICH AUF 'this.data' von myclass zugreifen

    Hier ist durch die Verschachtelung der Funktionen die besagte Variable verfügbar:

    instanz.data

    http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#methoden-eigener-objekte-und-kontext
    http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#closures

    Übrigens ist "new function () {}" etwas ganz anderes als "function () {}"!
    Wenn du den Unterschied nicht verstehst, willst du mit großer Wahrscheinlichkeit letzteres - nämlich einfach eine Funktion erzeugen und in this.methode speichern. new function () {...} hingegen erzeugt ein Funktionsobjekt und benutzt es als Konstruktor. Das Ergebnis dieses Ausdrucks ist ein Object (in deinem Fall vermutlich leer), kein Funktionsobjekt.

    Mathias