Javascript 在socket.io中使用箭头函数

Javascript 在socket.io中使用箭头函数,javascript,typescript,Javascript,Typescript,我想知道如何使用arrow函数来替换bind。我的理解是,我可以使用arrow函数在函数中按词汇调用this,但函数甚至不再被调用 奇怪的是,我没有得到任何错误,如果我使用箭头函数,它只是默默地失败 constructor(socket: SocketIO.Socket { // Works socket.on(this.onLogin.name, this.onLogin.bind(this)); // Doesn't work? socket.on(this

我想知道如何使用arrow函数来替换bind。我的理解是,我可以使用arrow函数在函数中按词汇调用
this
,但函数甚至不再被调用

奇怪的是,我没有得到任何错误,如果我使用箭头函数,它只是默默地失败

constructor(socket: SocketIO.Socket
{
    // Works
    socket.on(this.onLogin.name, this.onLogin.bind(this));

    // Doesn't work?
    socket.on(this.onLogin.name, (data: LoginDetails) => this.onLogin);
}


public onLogin(loginDetails: LoginDetails) {
    console.log(this.onLogin.name + " " + this.socketID);
}

您必须在arrow函数中调用函数

socket.on(this.onLogin.name, (data: LoginDetails) => this.onLogin(data));

您必须在arrow函数中调用函数

socket.on(this.onLogin.name, (data: LoginDetails) => this.onLogin(data));