gpt4 book ai didi

javascript - 如何使用 'this' 关键字规避 ES6 类范围问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:45:03 26 4
gpt4 key购买 nike

<分区>

例如在类构造函数中:

Socket.on('user:join', onUserJoin);

'onUserJoin' 被声明为类的一个方法,但被 socket.io 调用,所以 'this' 不是我的类。解决此问题的一种方法是使用 '=>' 函数。

例子:

Socket.on('user:join', (data)=>{
this.isOnline = true;
});

现在 'this' 是我的类,但我如何引用这个匿名函数来取消订阅?

socket.removeListener('user:join', ????);

我试过这个:

let self;
class RoomController {
constructor() {
self = this;
}
...
}

并在方法中引用 self 但 self 是跨套接字共享的...

命名匿名函数可以解决它,但我更喜欢绑定(bind)选项。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com