阅读《你不知道-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() {...}
这应该给你你想要的东西。