J'ai rencontré une erreur étrange pendant que je travaillais avec la nouvelle version d'ES6. Quand je lance ce morceau de code, je reçois ReferenceError: alertBox is not defined
. Est-il possible d'appeler alertBox à l'intérieur de cette fonction? Merci d'avance :)Erreur d'étendue dans le constructeur (ES6)
Voici le code
class main {
constructor(data){
this.data=data;
// this one works
this.alertBox(this.data);
this.watchFile(function(){
// this one throws error
this.alertBox(this.data);
});
}
alertBox(data){
alert(data);
}
watchFile(cb){
cb("changed");
}
}
// app.js
new main("hello");
vous pouvez trouver ici l'extrait: https://repl.it/FJUo
Merci beaucoup! Cela a fonctionné, je ne savais pas que je devais utiliser des fonctions de flèche pour cette raison particulière. Merci encore :) –
Oui, avant ES6 vous deviez lier manuellement 'this' à une fonction normale, mais avec les fonctions de flèche vous obtenez ce comportement gratuitement. – Graham