Tonald Drump
Neues Mitglied
Hi,
ich habe es versucht zu googlen, aber ich glaube mir fehlen die richtigen Bezeichnungen. Ich fange gerade erst an mit Javascript und Co. Es läuft soweit ganz gut und schön. Momentan baue ich eine Klasse für Listboxen. Es gibt aber immer wieder ein Problem, auf das ich regelmäßig stoße. Meine bisherigen Lösungsansätze verschweige ich hier jetzt mal aus Scham. Es dreht sich um folgendes:
Auf das wesentliche reduziert sieht so meine Klasse aus. Wenn ich in einem PHP script die createOption ausführen möchte, tut er das mit "this" (bzw $this->). Dieses "this" in Javascript ist jedoch leider nicht definiert. Beziehungsweise manchmal funktioniert es, manchmal nicht. Kann mir jemand kurz erklären, worin mein Denkfehler liegt? "this.giveAll()" oben drüber funktioniert ja. Ich dachte auch zuerst, dass er mit "this" versucht auf "element" zuzugreifen, aber das stimmt auch nicht. Per "console.log(this)" gibt er mir an der Stelle einfach ein "undefined".
Würde mich freuen, wenn mich jemand erleuchten kann.
EDIT:
Meine Zwischenlösung ist, dass ich mir das "this" in eine Zwischenvariable speicher. Zunächst:
und die funktion in der each-Schleife rufe ich dann mit
auf. Klappt, aber ist glaube ich nicht die feine englische Art.
Herzlichen Gruß,
ich habe es versucht zu googlen, aber ich glaube mir fehlen die richtigen Bezeichnungen. Ich fange gerade erst an mit Javascript und Co. Es läuft soweit ganz gut und schön. Momentan baue ich eine Klasse für Listboxen. Es gibt aber immer wieder ein Problem, auf das ich regelmäßig stoße. Meine bisherigen Lösungsansätze verschweige ich hier jetzt mal aus Scham. Es dreht sich um folgendes:
Code:
class ListBox {
createOption(value, text) {};
sortMe()
{
(...)
myArray = this.giveAll().sort(Comparator);
this.killAll();
myArray.forEach(function(element)
{
Das Problem ----------> this.createOption(element[0], element[1]);
});
}
}
Auf das wesentliche reduziert sieht so meine Klasse aus. Wenn ich in einem PHP script die createOption ausführen möchte, tut er das mit "this" (bzw $this->). Dieses "this" in Javascript ist jedoch leider nicht definiert. Beziehungsweise manchmal funktioniert es, manchmal nicht. Kann mir jemand kurz erklären, worin mein Denkfehler liegt? "this.giveAll()" oben drüber funktioniert ja. Ich dachte auch zuerst, dass er mit "this" versucht auf "element" zuzugreifen, aber das stimmt auch nicht. Per "console.log(this)" gibt er mir an der Stelle einfach ein "undefined".
Würde mich freuen, wenn mich jemand erleuchten kann.
EDIT:
Meine Zwischenlösung ist, dass ich mir das "this" in eine Zwischenvariable speicher. Zunächst:
Code:
var a = this;
und die funktion in der each-Schleife rufe ich dann mit
Code:
a.createOption...
auf. Klappt, aber ist glaube ich nicht die feine englische Art.
Herzlichen Gruß,
Zuletzt bearbeitet: