【问题标题】:How to identify an event and pass it as a parameter to the callback function in JS?如何识别事件并将其作为参数传递给 JS 中的回调函数?
【发布时间】:2021-06-13 13:38:10
【问题描述】:

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

下面的代码会产生 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 个事件中调用它的引用传递给回调函数。

有什么想法吗?

【问题讨论】:

    标签: javascript parameters callback


    【解决方案1】:

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

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

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

    【讨论】:

    • 酷!谢谢你!只是一个旁注 - 在这种情况下正确的是 setTimeout (DoStuff, 1000, eventname)。将 this 作为参数传递,它将返回窗口。 :-)
    猜你喜欢
    • 2012-06-30
    • 2010-10-04
    • 2021-06-10
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2018-11-22
    • 2013-02-07
    相关资源
    最近更新 更多