【问题标题】:How do I pass a function as a parameter to run multiple times?如何将函数作为参数传递以多次运行?
【发布时间】:2011-09-05 19:47:23
【问题描述】:

我不太了解函数闭包和匿名函数。我要做的是创建一个函数,该函数根据掷骰子随机运行输入的函数:

repeat(1,6,foobar());

function repeat(numDie, dieType, func){
    var total = 0;
    for (var i=0; i < numDie; i++){
        var dieRoll = Math.floor(Math.random()*dieType)+1;
        total += dieRoll;
    }
    for (var x=0; x < total; x++){
        func();
    }
}

我到底做错了什么?我必须将函数存储在变量中才能使用它吗?

【问题讨论】:

  • 不,接近的选民,这个问题很可能对未来的访客有帮助。
  • @Bolt:除了可能有数百个重复;这似乎每天都会出现。

标签: javascript function parameters


【解决方案1】:

变化:

重复(1,6,foobar());

repeat(1,6,foobar); 

【讨论】:

    【解决方案2】:

    通过编写foobar(),您调用 foobar 并传递其返回值。

    删除括号以传递函数而不是调用它。

    【讨论】:

    • 谢谢!这很有帮助:)
    • ... 如果 foobar() 带参数怎么办?
    • @rob:那你需要传递一个匿名函数。
    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 2011-02-12
    • 2016-07-23
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多