请参阅以下两个功能。它们导致相同的输出[4,6],但在设置上有所不同。仅第一个函数使用回调函数是否正确?第一个功能是首选(更优雅吗?)而不是另一个? ' map'是否正确?是第二个例子中的高阶函数,因为它使用了括号内的回调函数? 谢谢!
function processArray(arr,callback){
return arr.map(callback)
}
processArray([2,3], function(number){return number*2})
和
function processArray(arr){
return arr.map(function(element){
return otherFunction(element)})
}
function otherFunction(number){
return number*2}
processArray([2,3])
答案 0 :(得分:1)
只有第一个函数使用回调函数是否正确?
没有。 arr.map
进行回调。你在这里看不到它的定义。
第一个功能是首选(更优雅吗?)而不是另一个?
是的,但(可能)不是你想的原因。包装otherFunction
的匿名函数是没有意义的。你也可以写
function processArray(arr){
return arr.map(otherFunction)
}
function otherFunction(number){
return number*2
}
processArray([2,3])
' map'是否正确?是第二个例子中的高阶函数,因为它使用了括号内的回调函数?
在第一个示例中,processArray
和map
都是高阶函数。在第二个中,是的,只有map
是高阶的。
检查一个函数以查看它是否是一个高阶函数很容易:是否调用了一个(或多个)参数?