addEventListener this 指向问题
by acdzh · 2021年8月19日12:26 · 11 WORDS · ~ 1 mins reading time · 0 Visitors |
先看一段代码:
class A {constructor() {this.msg = "I am class A";window.addEventListener('message', this.onmsg, false);}onmsg() {console.log(this.msg);}}window.msg = "This is window";const a = new A();window.postMessage('test');
输出的结果是 This is window. 这是因为这里 addEventListener 中的事件函数 onmsg 的 this 实际上 window 而不是 a. 如果想明确 this 的话, 需要指定 this 的指向.
class A {constructor() {this.msg = "I am class A";window.addEventListener('message', this.onmsg.bind(this), false);}onmsg() {console.log(this.msg);}}window.msg = "This is window";const a = new A();window.postMessage('test');
| Version | Action | Time |
|---|---|---|
| 1.0 | Init | 2021-08-19 20:26:03 |