setTimeout函数中的这个关键字

时间:2018-02-09 06:35:42

标签: javascript this

此问题与主题here

有关

我期待控制台登录窗口,但它正在记录LateBloomer。请帮我理解。

enter image description here

1 个答案:

答案 0 :(得分:1)

由于

window.setTimeout(console.log(this), 1000);

调用console.log(this),并将其返回值(undefined)传递给setTimeout,与foo(bar())调用bar的方式完全相同,并将其返回值传递给{ {1}}。因此,记录的foo是当前代码行所在的this

在相关问题中,他们正在这样做:

this

调用window.setTimeout(this.declare.bind(this), 1000); 并将其返回值(绑定函数)传递给bind