在javascript中将函数作为参数传递,而不是作为函数的返回值传递

在javascript中将函数作为参数传递,而不是作为函数的返回值传递,javascript,function,parameters,callback,Javascript,Function,Parameters,Callback,假设我有一个函数roll,它随机返回一个值1-6。现在,如果我有另一个名为repeatFunction的函数,它接受一个函数作为参数和一个数字n。repeatFunction的目的是调用它作为参数的任何函数n次。但是,如果将roll作为参数传递,repeatFunction会将其解释为roll函数返回的值1-6,而不是函数。我目前的代码如下: function repeatFunction(func, n){ for(i = 0; i < n; i++){ func

假设我有一个函数roll,它随机返回一个值1-6。现在,如果我有另一个名为repeatFunction的函数,它接受一个函数作为参数和一个数字n。repeatFunction的目的是调用它作为参数的任何函数n次。但是,如果将roll作为参数传递,repeatFunction会将其解释为roll函数返回的值1-6,而不是函数。我目前的代码如下:

function repeatFunction(func, n){
    for(i = 0; i < n; i++){
        func;
    }
}
repeatFunction(roll(), 10);
如何使repeatFunction将func参数解释为函数而不是返回值,以便我可以在repeatFunction中再次调用它?

传递对roll函数的引用,并在repeat函数中作为回调调用它。像这样,

function repeatFunction(func, n){
    for(i = 0; i < n; i++){
        func();
    }
}
repeatFunction(roll, 10);

您需要传递函数名,而不是返回的执行

您正在执行函数roll,只需传递roll

看看这个代码片段 重复函数将递归执行函数fn,直到i==n

函数重复函数fn,n,i{ 如果i==n返回; fn; 重复函数fn,10,+i; } var roll=函数{ console.log'Called!'; }; 重复功能辊,10,0; .作为控制台包装{ 最大高度:100%!重要 }
repeatFunction(roll(), 10);
               ^