关于js函数的绑定

    this.login_btn.node.on(cc.Node.EventType.TOUCH_END,function(event){
        this.btn_function(event)
    }.bind(this));

// 被调用方法的实现
btn_function:function(event){
    let _account_str = this.account.string;
    let _password_str = this.password.string; 
    this.login(_account_str,_password_str);
}

这是我写的代码,主要为了 login_btn在被按下时调用btn_function这一javascript的自定义函数。
但上述写法我一直觉得很难看,如果写成
this.login_btn.node.on(cc.Node.EventType.TOUCH_END,this.btn_function);
样子虽然好看了,但btn_function方法里的this就不是这个实例本身,从而导致报错。
有没有什么优雅点的写法?

this.login_btn.node.on(cc.Node.EventType.TOUCH_END, this.btn_function.bind(this));

this.login_btn.node.on(cc.Node.EventType.TOUCH_END, this.btn_function, this)
this.login_btn.node.off(cc.Node.EventType.TOUCH_END, this.btn_function, this)