javascript - 带参数的 setTimeout

标签 javascript

在尝试解决这个问题时有点头疼。我想要做的是有一个带有参数的自定义 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 第五版功能,尚未在所有主要浏览器中得到支持。为了兼容性,您可以包含 bindsource ,它在 MDN 上可用,允许您在 native 不支持它的浏览器中使用它。

DEMO .

关于javascript - 带参数的 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451844/

相关文章:

javascript - 关闭当前选项卡并打开一个新选项卡 - 仅适用于 Chrome

javascript - 如何访问JS对象中嵌套项的索引?

html - 关于 (1) 通过 CSS 改进 JS 代码和 (2) 去除超链接图像周围的蓝色虚线边框的 CSS、JS 问题

javascript - 复制到剪贴板并维护电子邮件签名的 HTML 元素

JavaScript 方法中,一种有效,另一种无效

javascript - react 传单 map 未正确显示

javascript - 如何使用 Bootstrap 3 弹出窗口和 jQuery 确认表单提交

JavaScript 小数增量?

javascript - 输入组 btn 从字段右侧 float

javascript - iframe 内的 foreach 内的 knockout 模板