阅读本书You-Don't-Know-JS并尝试理解this
的概念。
这实际上是一个在调用函数时产生的绑定,它引用的内容完全由调用函数的调用站点决定。
我遇到了以下代码:
function a() {
function b() {
console.log(this.myVar);
}
var myVar = 2;
b();
}
var myVar = 1;
a();

上面代码记录的最终结果1
让我想知道上面代码的调用点是什么,因为很明显看到函数b在函数a中被调用,所以我认为期望的值应该是2而不是1.
答案 0 :(得分:-3)
这是因为如果使用关键字函数定义所有函数属于全局范围,即使您可能无法执行此操作。在a()函数内部将其写为以下内容。
this.b = function() {...}
这应该可以满足您的需求。