我正在尝试将函数(平均值)作为参数传递给另一个函数(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不是函数 - 指平均值(成绩簿......)
谢谢!
答案 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); }
};