在尝试解决这个问题时有点头疼。我想要做的是有一个带有参数的自定义 setTimeout with out 必须创建一个函数来传递它。让我用代码来解释:
想要避免:
function makeTimeout(serial){
serial.close();
}
setTimeout(makeTimeout(sp.name), 250);
我想做的就是通过以下方式调用 1 类轮:
setTimeout(function(arg1){ .... }(argument_value), 250);
这可以做到还是只能传入一个无参数函数?
最佳答案
您可以向它传递一个匿名函数,该函数使用给定的参数调用 makeTimeout
:
setTimeout(function () {
makeTimeout(sp.name);
}, 250);
还有一个替代方案,使用 bind
:
setTimeout(makeTimeout.bind(this, sp.name), 250);
然而,此功能是 ECMAScript 第五版功能,尚未在所有主要浏览器中得到支持。为了兼容性,您可以包含 bind
的 source ,它在 MDN 上可用,允许您在 native 不支持它的浏览器中使用它。
DEMO .
关于javascript - 带参数的 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451844/