Ich habe eine JavaScript-Klasse mit einer Prototyped-Methode, die eine For-Schleife verwendet, um eine Gruppe von Objekten einen Ereignis-Listener hinzuzufügen und eine andere Methode in der Klasse aufzurufen.Hinzufügen von Bind zu einem Prototyp-Objekt in Vanille Javascript in einer for-Schleife
Um auf die andere Methode in der Klasse zugreifen zu können, muss ich die Funktion im Ereignis-Listener binden, die mir Zugriff auf die andere Klassenmethode gibt. Allerdings bekomme ich immer den höchsten Wert in der for-Schleife, also gebe ich eine Funktion in einer anonymen Funktion zurück, aber jetzt kann ich die bind-Funktion nicht mehr zum Laufen bringen und finde die andere Klassenmethode.
ToDoList.prototype = {
addListener : function(){
//inside for loop
for(var i = 0; i < ToDoList.counter; i++){
el.addEventListener("click", ((function(value){
return function(){
this.remove(value); //trying to call this method
};
})(i)).bind(this)
);
}
}
remove : function(index){
//do some stuff if you can get to me
}
}
Der obige Code funktioniert nur mit dem letzten Wert der for-Schleife. Gibt es eine Möglichkeit, dass ich den Code auf alle Werte in der For-Schleife arbeiten kann.
Vielen Dank im Voraus
Was 'for' Schleife? – adeneo
es ist in einer for-Schleife Ich habe einfach aus Gründen der Einfachheit weggelassen –
Okay, ich habe gerade Ihren Code zur Vereinfachung geändert -> https://jsfiddle.net/4onwcf3n/ – adeneo