将函数传递给另一个函数的参数

时间:2014-03-08 03:35:22

标签: javascript

我正在尝试将函数(平均值)作为参数传递给另一个函数(getAverage)。然后,在体内,我试图调用传递函数(平均值)。当我调用它时,它一直告诉我函数是未定义的。为什么呢?

var average = function(scores) {
var total = 0;
var i = 0;
while (i < scores.length) {
  total = total + scores[i];
  i++;
}
return total / scores.length;
};

gradebook.getAverage = function(name, average) {
if (name === "Joseph") { average(gradebook.Joseph.testScores); }
};

错误:undefined不是函数 - 指平均值(成绩簿......)

谢谢!

1 个答案:

答案 0 :(得分:0)

这一行:

 gradebook.getAverage = function(name, average) {
   if (name === "Joseph") { average(gradebook.Joseph.testScores); }
 };

声明一个名为average的参数的函数。

您没有使用外部作用域中定义的平均函数,而是为隐藏前一个声明的内部作用域定义新的平均参数。

只需删除参数名称即可使用外部作用域中定义的average

 gradebook.getAverage = function(name) {
   if (name === "Joseph") { average(gradebook.Joseph.testScores); }
 };