У меня возникла странная ошибка , когда я работал с новой версией ES6. Когда я запускаю этот кусок кода, я получаю ReferenceError: alertBox is not defined
. Есть ли способ вызвать alertBox внутри этой функции? Заранее спасибо :)Ошибка области в конструкторе (ES6)
Вот код
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");
Здесь Вы можете найти фрагмент кода: https://repl.it/FJUo
спасибо! Это сработало, я не знал, что мне приходится использовать функции стрелок по этой причине. Еще раз спасибо :) –
Да, перед ES6 вам пришлось вручную привязать 'this' к нормальной функции, но со стрелочными функциями вы получите это поведение бесплатно. – Graham