gpt4 book ai didi

javascript - 为什么 setInterval 在我只分配它时启动?

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:22 25 4
gpt4 key购买 nike

我正在为一个变量赋值,一个使用 setInterval 的函数,但我不希望函数在我调用它之前运行。但是,该函数仅从赋值语句运行。

sessionClock = setInterval(function() {
console.log("Hi")
}, 1000)

我也试过这样:

sayHi = function() {
console.log("Hi");
}

var sayHiStarter = setInterval(sayHi, 1000);

这两个都会启动函数并将“Hi”记录到控制台。

为什么它在分配时运行?我该怎么做才能解决这个问题?

最佳答案

如果你只想绑定(bind)一个函数到setInterval,但稍后调用它,你可以使用bind :

var sessionClock = setInterval.bind(null, function() {
console.log("Hi")
}, 1000);

//... later

var myInterval = sessionClock(); // start the timer

// ... later if you need to clear it

clearInterval(myInterval);

原则上,bind 返回一个新函数,该函数使用预定义的参数调用您的原始函数(在本例中为 setInterval)。因此,当您调用 sessionClock 时,将调用返回的函数。 bind 还有其他方面,但它们似乎不适用于此上下文。

关于javascript - 为什么 setInterval 在我只分配它时启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33612680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com