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

How to execute already declared functions using setTimeout() in JavaScript?

基本上,如果我想在 setTimeout() 中执行一个函数,我必须在 setTimeout() 中声明它,就像这样:

setTimeout(function () {
    safe.isBroken = false;
    safe.amount = randNumberBetween(500, 1500);
}, 30000);

但我不能这样做:

setTimeout(safeRefill(30000)

有什么办法吗?

谢谢。

有可能,像这样:

setTimeout(safeRefill, time)

但是,为了解析 safeRefill 的参数,您必须这样做:

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

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

这里是 fiddle 演示相同的内容。 http://jsfiddle.net/0449f1dn/1/

希望对您有所帮助!