将参数传递给 setTimeout() 回调
在 JavaScript 中,setTimeout() 函数允许您安排在某个时间后执行的函数指定延迟而不阻塞事件循环。但是,了解如何正确地将参数传递给回调函数是至关重要的。
考虑以下代码:
function statechangedPostQuestion() { // ... setTimeout("postinsql(topicId)", 4000); }
此代码尝试将 topicId 参数传递给 postinsql() 函数使用字符串。然而,这种方法已被弃用,并且在当前的 JavaScript 版本中不起作用。
要正确地将参数传递给 setTimeout() 回调,您应该将回调定义为匿名函数并将其直接作为参数传递:
setTimeout(function() { postinsql(topicId); }, 4000);
此方法确保函数不会立即调用,并且 topicId 参数在回调。
更新:
随着现代 JavaScript 的出现,现在可以使用 Function.prototype.bind() 将参数传递给 setTimeout() 回调。这种方法提供了一种将参数绑定到函数的简洁方法,而无需创建匿名函数:
setTimeout(postinsql.bind(null, topicId), 4000);
通过遵循这些准则,您可以正确地将参数传递给 setTimeout() 回调,确保正确执行并避免错误。
以上是如何在 JavaScript 中正确向 setTimeout() 回调传递参数?的详细内容。更多信息请关注PHP中文网其他相关文章!