首页 > 解决方案 > 如何识别事件并将其作为参数传递给 JS 中的回调函数?

问题描述

我做了几次测试并在网上搜索,但找不到解决方案。

我在下面有以下代码,它会产生 4 个超时事件。

for (let w=1; w<=4; w++) {
    var eventname = "event"+w;
    this[eventname] = setTimeout(DoStuff(this), 1000);
}

function DoStuff (myref) {
    console.log(myref)
}

我需要一种将 4 个事件中的哪个事件调用它的引用传递给回调函数的方法。

任何想法?

标签: javascriptparameterscallback

解决方案


函数中的第三个和所有后续参数setInterval可用于传递参数。

因此,在您的情况下,将eventname引用传递给参数setTimeout之后delay,并且只引用该DoStuff函数而不调用它。

for (let w=1; w<=4; w++) {
  var eventname = "event"+w;
  this[eventname] = setTimeout(DoStuff, 1000, eventname);
}

推荐阅读