En mi ciclo forEach, todas mis variables de clase se vuelven indefinidas. Alguna sugerencia ?
class MyClass{ constructor(){ this.myVar = "Hello" } iterate(itemList){ console.log(this.myVar); // working for (var i = 0; i < itemList.length; i++) { console.log(this.myVar); // also working } itemList.forEach(function(element){ console.log(this.myVar); // NOT working }); } } instance = new MyClass(); instance.iterate([0,1]);Que debido a que el valor de "esto" en la función forEach = "indefinido", necesita obtener el valor de "esto" del objeto.
Por favor, chequee esto.
class MyClass{ constructor(){ this.myVar = "Hello" } iterate(itemList){ console.log(this.myVar); // working const that = this; itemList.forEach(function(element){ console.log(that.myVar); // NOT working }); } } instance = new MyClass(); instance.iterate([0,1]);O puede vincular la función de devolución de llamada de forEach con el objeto this.
class MyClass{ constructor(){ this.myVar = "Hello" } iterate(itemList){ console.log(this.myVar); // working itemList.forEach(function(element){ console.log(this.myVar); // NOT working }.bind(this)); } } instance = new MyClass(); instance.iterate([0,1]);