qq_24286421
Largemage
采纳率85.7%
2019-08-22 22:56

为什么this应该指向window但输出的却是undefined?

5
class A {
    getA() {
        console.log(this);
    }
}
let a = new A();
let funcA = a.getA;
funcA();//undefined

代码如上,是因为class么?我试了function A结果是window对象,为什么用class就会是undefined?难道funcA中的this不指向window?
求帮忙解答谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • jslang 天际的海浪 2年前

    因为class xxx{}中的代码都是严格模式的。等于是自动加上"use strict"
    在严格模式下禁止this指向全局对象(window)。

    点赞 4 评论 复制链接分享
  • wojiushiwo945you 毕小宝 2年前

    对的,因为你定义了一个 class 类 A,在它的方法中的 this 就是指当前对象。

    点赞 1 评论 复制链接分享
  • CodingNoob #麻辣小龙虾# 2年前

    一楼说的对,
    因为class xxx{}中的代码都是严格模式的。等于是自动加上"use strict"
    在严格模式下禁止this指向全局对象(window)。

    点赞 评论 复制链接分享
  • A1690363967 A1690363967 2年前

    首先正常来说 this 的指向的确是 window 对象,但是你定义了 class 之后 this 的指向就已经发生了转变,this 指向当前函数调用的对象也就是 A

    点赞 评论 复制链接分享
  • zongxian5219 铁血乳娃娃 2年前

    希望问题描述更准确一些function A是哪个

    点赞 评论 复制链接分享