Objekt aus jQuery-Code aufrufen
ScaraX
- javascript
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
statt
methode = new function()
heißt es natürlich
this.methode = new function()
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