我试图理解这个简单的代码片段
function fnWrapper (fn) {
return function printResults (...args) {
const results = args.map(fn)
console.log(results)
}
}
const squarePrinter = fnWrapper(x => x*x)
const cubePrinter = fnWrapper(x => x*x*x)
const nums = [1, 2]
squarePrinter(1, 2)
cubePrinter(1, 2)
虽然,几乎所有的东西都是有道理的,但我无法理解这部分 args.map(fn)
即 map
应该给出一个元素,但是我们如何能够传递我们的 fn 函数并直接获得所需的结果
最佳答案
根据 map文档它将回调函数作为参数并返回一个新数组,每个元素都是回调函数的结果。
例如
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])
所以在你的情况下
squarePrinter(1, 2)
const results = args.map(fn)
相当于
const results = [1, 2].map(function(x) {
return x*x;
})
关于javascript - 将函数传递给 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57001029/