node this 问题

module.exports = class A{
    static async bb(){
       # console.log(this) =>undefined.无法调用。
        await this.bb()
    } 
   static async bb(){
    //忽略代码
    }

}

我在另外文件

#koa-router koa2
router.post('/',A.bb)  

node 7.10
在同一个类中的一个静态方法调用另一个静态方法,可以使用 this 关键字。
怎么是this值怎么是undefined

阅读 2.7k
4 个回答

静态方法调用this?

JavaScript 中的函数分为:定义时上下文运行时上下文

而 JavaScript 的函数调用时,this 永远都是指向运行时上下文。

module.exports = class A ... 此处有一个赋值的过程,函数的运行上下文改变了。

箭头函数绑定

module.exports = class A{
    static bb = async () => {
        await this.bb()
    } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题