Javascript 此关键字包含在setTimeout函数中

Javascript 此关键字包含在setTimeout函数中,javascript,this,Javascript,This,这个问题与主题有关 我本来希望控制台记录窗口,但它正在记录LateBloomer。请帮我理解 因为 window.setTimeout(console.log(this), 1000); 调用console.log(this),并将其返回值(undefined)传递到setTimeout,就像foo(bar())调用bar并将其返回值传递到foo一样。因此,记录的this是当前this代码行所在的位置 而在相关问题中,他们是这样做的: window.setTimeout(this.declar

这个问题与主题有关

我本来希望控制台记录窗口,但它正在记录LateBloomer。请帮我理解

因为

window.setTimeout(console.log(this), 1000);
调用
console.log(this)
,并将其返回值(
undefined
)传递到
setTimeout
,就像
foo(bar())
调用
bar
并将其返回值传递到
foo
一样。因此,记录的
this
是当前
this
代码行所在的位置

而在相关问题中,他们是这样做的:

window.setTimeout(this.declare.bind(this), 1000);

调用
bind
并将其返回值(一个绑定函数)传递到
setTimeout

@SurajRao:好的,我以后会注意的。你说的“希望控制台记录窗口”是什么意思?你在LateBloomer上写一个方法,因此使用“this”关键字你将引用该对象而不是窗口对象。无论如何,你想在窗口中登录什么?重复的太懒了,找不到重复的?;)@埃帕斯卡雷罗:你知道,我把它作为一个复制品关闭了,但是由于错误的复制品,然后……出于某种原因,没有批判性地评估它可能是(好吧,一定是)另一个复制品的复制品!说得好,谢谢。@epascarello:特别是:如果你愿意获得荣誉?@epascarello:我从来没有这么高兴过。你有更好的目标吗?我想换一个更好的。我想我不能清楚地表达我的疑问,所以你的回答没有多大帮助。我正在发展我的理解和记录它。我相信我很快就会明白的。我想和大家分享我的笔记。如果你发现我的观察结果方向正确,并且你认为它们与这个问题有关,我会把我的观察结果贴在这里。