this`是指它的调用位置或调用方式吗?

问题描述 投票:2回答:1

我不是问this是什么。我目前正在重新阅读《 [[您不知道JS:本和对象原型]]》这本书。但是在书中有两个地方,作者说了两个不同的东西(至少看起来是这样)。 第一个定义:

this绑定与声明函数的位置无关,但是取而代之的是与功能的方式有关叫。

第二个定义:

this实际上是在调用函数时进行的绑定,它所引用的内容完全取决于呼叫站点该函数被调用。

第一个明确指出,它与

where

无关,而是从how调用。第二个说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的工作方式。我只是对它的书面定义感到困惑。

我不是问这是什么。我目前正在重新阅读《您不知道JS:本和对象原型》一书,以了解这一点。但是书中有两个地方,作者说了两个...
javascript this
1个回答
4
投票
第一个明确指出它与它在哪里[<< [被叫
© www.soinside.com 2019 - 2024. All rights reserved.