我正在尝试编写一个接受另一个函数作为参数的函数,但我不知道该函数究竟是什么,因为用户将有两个函数可供选择。这两个函数都接受相同的参数 我的想法是获取用户想要调用的函数的名称,该名称将存储在projectScoreByXXX中,然后调用它,但它保持告诉我函数未定义
Tournament.prototype.projectedLeaderboard= function(projectScoreByXXX){
for(var i =0; i<jsonObj.tournament.players.length; i++){
jsonObj.tournament.players[i].score = projectScoreByXXX(jsonObj.tournament.players[i].lastname, jsonObj.tournament.players[i].firstinitial);
}
leaderboard();
}
}
谢谢
当用户想要调用他将使用的功能时 t.projectedLeaderboard(projectScoreByHole); 或者t.projectedLeaderboard(projectScoreByIndividual);
projectScoreByIndividual和projectScoreByHole是我班上的两个函数 projectScoreByXXX不是一个函数名,我把它作为参数名称放在那里,因为我不知道用户将使用哪一个个人或洞 有没有办法做到这一点?
答案 0 :(得分:3)
您应该直接调用该函数,这里举例说明:
function caller(func, params) { // in your case: projectedLeaderboard, and you're not
// using params since like you said
// they would have the same arguments
func(params); // in your case: projectScoreByXXX(jsonObj...., jsonObj...)
}
function f(n) {
console.log(n**2);
}
function g(n) {
console.log(Math.sqrt(n));
}
caller(f, 4);
caller(g, 4);
&#13;