JavaScript 'this'由调用站点确定



阅读《你不知道-JS》一书,并试图理解this的概念。

这实际上是在调用函数时进行的绑定,它引用的内容完全由调用该函数的调用站点决定。

我遇到了以下代码:

function a() {
function b() {
console.log(this.myVar);
}
var myVar = 2;
b();
}
var myVar = 1;
a();

上面代码的最终结果记录1这让我想知道上述代码的调用站点是什么,因为清楚地看到函数 b 在函数 a 内部被调用,所以我认为期望值应该是 2 而不是 1。

这是因为如果使用关键字函数定义所有函数都属于全局范围,即使您可能无法执行此操作。在 a(( 函数中将其编写如下。

this.b = function() {...}

这应该给你你想要的东西。

相关内容

最新更新