У меня есть класс машинописи определяется как так:машинописи «это» в переданных функциях
class Foo extends events.EventEmitter {
private msg;
constructor(){
super();
}
public error=(err)=> {
debug("got an error",err,this.msg.data);
}
setup=()=> {
this.options = {
error: this.error
}
}
run=()=> {
let x = require("someothermodule");
x.run(this.options);
}
}
проблема я получаю, когда «х» называет options.error функции "TypeError: не удается прочитать свойство «данные» неопределенной ", и конечно же, this.data является неопределенными
То, что я хочу знать, как ссылаться на„правильный“это в функции ошибки?
Это результат долгого пути, пытаясь всевозможные варианты, связывание, пытаясь сохранить это в _this;)
бы признателен за любой понимание - новичок машинопись парень (не работает на всех!) , так что, возможно, я что-то действительно очевидное
благодаря
Я не видит какую-либо настройки значения 'msg' полей коды. Как вы ожидаете, что 'this.msg' будет иметь значение, отличное от' undundined ', если вы его никогда не измените? –
Попробуйте связать область действия Foo с методом ошибки при создании объекта options: 'error: this.error.bind (this)'. Я могу уточнить, если вам нужно больше деталей. – FlorianTopf
@MattiasBuelens: извините, это был всего лишь небольшой код «snippet» - поэтому я не исказил весь код. извинения – jmls