class内部方法中this丢失

class A {
    a(){
        console.log(this)
        function b(){
            console.log(this)
        }
        b()
    }
}
let a = new A()
a.a()
// A
// undefined

代码如上,第一个this毫无疑问指向了当前的a,第二个this丢失了。
想不明白为什么第二个this会丢失。

阅读 4.2k
3 个回答

浏览器全局对象this是window,而node中是global,严格模式下则是undefined。

你在a函数内声明的b函数是无主的,所以b函数内的this指向window

没有调用对象,你仔细看看,仔细想想。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题