Javascript 为什么使用';这';关键字在运行时不工作';正在使用对象名

Javascript 为什么使用';这';关键字在运行时不工作';正在使用对象名,javascript,this,Javascript,This,我在控制台用“calculator”调用函数时得到了结果,但在使用“this”关键字时显示为未定义 const calculator = { calcBMI: function (mass, height) { const BMI = mass / height ** 2; return BMI; }, firstName: "Arvind", }; console.log(calculator.calcBMI(6, 1.8)); console

我在控制台用“calculator”调用函数时得到了结果,但在使用“this”关键字时显示为未定义

const calculator = {
  calcBMI: function (mass, height) {
    const BMI = mass / height ** 2;
    return BMI;
  },
  firstName: "Arvind",
};

console.log(calculator.calcBMI(6, 1.8));
console.log(this.calcBMI(6, 1.8));

此处
表示窗口对象。窗口对象中未定义
calcBMI
方法。因此它返回
未定义的

const计算器={
calcBMI:功能(质量、高度){
常数BMI=质量/高度**2;
返回体重指数;
},
名字:“Arvind”,
};

console.log(this)
将不等于
计算器
。实际值将取决于上下文和执行,但至少在您显示的代码中可能是
窗口
未定义的
。我完全不知道您为什么希望
解析为
计算器
指定的对象。