var arr = [1,4,5];
var getMaxOfArray = function(list, callback) { //this function return the max
if (typeof callback === "function")
return Math.max.apply(Math, callback.call(list));
else
return -1;
};
var cb = function(list) { //callback adds two to each value to a new array
var results = [];
for (var i=0; i<list.length; i++) {
results.push(list[i] + 2);
}
return results;
};
//cb(arr);
getMaxOfArray(arr, cb(arr));
当我调用cb(arr)时,它作为一个函数进行求值并返回[3,6,7]的预期结果,但是当我尝试调用getMaxOfArray(arr,cb(arr))时;我的条件返回-1,表明它不是一个函数?我做错了什么?
答案 0 :(得分:0)
首先,你需要像这样调用getMaxOfArray方法:
getMaxOfArray(arr, cb);
第二,将调用行更改为:
return Math.max.apply(Math, callback.call(this, list));
或只是调用回调:
return Math.max.apply(Math, callback(list));