【发布时间】:2021-11-12 10:25:23
【问题描述】:
let obj = {
one: function(){
this.two();
},
two: function(){
console.log("two");
}
}
let oneFunc = obj.one;
obj.one(); // two
oneFunc(); // TypeError: this.two is not a function
我用 JavaScript 编程已经有一段时间了。我以为我对 this 关键字有一个非常扎实的把握。然而,我今天遇到了这个问题,这让我大吃一惊。我无法弄清楚为什么会这样。当我调用oneFunc() 时,this 指的是全局对象。为什么会这样?
【问题讨论】:
-
因为
this取决于调用函数的人以及调用方式。 -
this指的是调用函数的对象
标签: javascript node.js this