如何在JavaScript中使用setTimeout()执行已声明的函数?

如何在JavaScript中使用setTimeout()执行已声明的函数?,javascript,function,settimeout,Javascript,Function,Settimeout,基本上,如果我想在setTimeout()中执行一个函数,我必须在setTimeout()中声明它,如下所示: setTimeout(function () { safe.isBroken = false; safe.amount = randNumberBetween(500, 1500); }, 30000); 但我不能这样做: setTimeout(safeRefill(30000) setTimeout(safeRefill, time) setTimeout(fu

基本上,如果我想在
setTimeout()
中执行一个函数,我必须在
setTimeout()
中声明它,如下所示:

setTimeout(function () {
    safe.isBroken = false;
    safe.amount = randNumberBetween(500, 1500);
}, 30000);
但我不能这样做:

setTimeout(safeRefill(30000)
setTimeout(safeRefill, time)
setTimeout(function(){ safeRefill(arg1, arg2) }, time)
有办法吗


谢谢。

可能是这样的:

setTimeout(safeRefill(30000)
setTimeout(safeRefill, time)
setTimeout(function(){ safeRefill(arg1, arg2) }, time)
但是,为了解析safeRefill的参数,您必须这样做:

setTimeout(safeRefill(30000)
setTimeout(safeRefill, time)
setTimeout(function(){ safeRefill(arg1, arg2) }, time)

是的,您当然可以在
setTimeout
中使用已经声明的函数。 您只需在匿名函数中调用现有函数,匿名函数作为第一个参数传递给
setTimeout
函数

这把小提琴也证明了这一点


希望有帮助

谢谢。当时我的代表率很低,所以我不能评论,也不能将其标记为回答或投票。没问题,很高兴能帮上忙!