我不是问this
是什么。我目前正在重新阅读《 [[您不知道JS:本和对象原型]]》这本书。但是在书中有两个地方,作者说了两个不同的东西(至少看起来是这样)。 第一个定义:
this
绑定与声明函数的位置无关,但是取而代之的是与功能的方式有关叫。第二个定义:
无关,而是从how调用。第二个说this
实际上是在调用函数时进行的绑定,它所引用的内容完全取决于呼叫站点该函数被调用。第一个明确指出,它与
where
this
大约是where的称呼。 要弄清楚this
会解决什么,我需要查看调用站点(或从何处调用函数),对吗?这意味着“ this
是什么”是一个问题而不是一个问题,对吗?我需要查看被调用的where
,而不是被调用的[[how。 例如:let test = {
a: 42
}
function foo(){
console.log(this.a);
}
foo.call(test);
Foo
被明确称为through测试,其中
this
将解析为test
范围。对?因此,要回答“ this
是什么”问题,我必须看看它是从哪里调用的,对吗? 另一个例子:
let test = {
a: foo,
b: 42
}
function foo(){
console.log(this.b);
}
test.a();
foo
直通
test
,所以要弄清楚this
会解决什么,我必须看看从哪里叫foo
吧? 再次,我(或多或少)了解this
的工作方式。我只是对它的书面定义感到困惑。