В этом сценарии es6 событие click не работает, поскольку метод sayHello
вызывается с this.elm
(<div>
) как this
.
как связать событие с методом без потери контекста?
class player{
constructor (name) {
this.name = name;
this.elm = document.createElement('div');
this.elm.addEventListener('click', this.sayHello);
}
sayHello() {
console.log(this.name + ' say: "hello!"'); // 'undefined say 'hello!"';
}
kill() {
console.log('RIP ${this.name} :'(');
this.elm.addClass('dead');
this.elm.removeEventListener('click', this.sayHello);
}
}