在这个 es6 脚本中,click 事件不起作用,因为sayHello
方法是用this.elm
( <div>
) as调用的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);
}
}