在 JavaScript 中将带有参数的方法放入变量中
Putting a method with arguments into a variable, in JavaScript
有时我很难理解JavaScript背后的逻辑,这是我经常看到的一个例子。这是一个将传递给计时器的简单函数:
function myCounter() {
//do something...
}
你可以这样传递:
setInterval(myCounter, 1000)
;
但是,通常我们需要有办法停止它,所以我们将它分配给一个变量:
var t = setInterval(myCounter, 1000);
这允许以后像这样清除它:
clearInterval(t);
我一直都在使用它,但令我困扰的是我不明白我到底在变量中输入了什么,以及为什么 typeof t
returns 一个数字。我到底在 t 里放了什么?谁能解释一下这背后的逻辑?
当你为一个变量分配一个区间时,你实际上是在分配一个ID。当您使用 clearInterval
到 select 要清除的计时器时,将使用该 ID。 typeof returns a number 的原因是因为 ID 是一个数字。
Here is a detailed explanation.
MDN 是这类事情的绝佳资源,我强烈推荐它
有时我很难理解JavaScript背后的逻辑,这是我经常看到的一个例子。这是一个将传递给计时器的简单函数:
function myCounter() {
//do something...
}
你可以这样传递:
setInterval(myCounter, 1000)
;
但是,通常我们需要有办法停止它,所以我们将它分配给一个变量:
var t = setInterval(myCounter, 1000);
这允许以后像这样清除它:
clearInterval(t);
我一直都在使用它,但令我困扰的是我不明白我到底在变量中输入了什么,以及为什么 typeof t
returns 一个数字。我到底在 t 里放了什么?谁能解释一下这背后的逻辑?
当你为一个变量分配一个区间时,你实际上是在分配一个ID。当您使用 clearInterval
到 select 要清除的计时器时,将使用该 ID。 typeof returns a number 的原因是因为 ID 是一个数字。
Here is a detailed explanation.
MDN 是这类事情的绝佳资源,我强烈推荐它