我正在阅读有关高阶函数的文章。他们给出了这样的代码示例:
var humans = function(data) {
return data.filter(function(character) {
return character.species === 'human';
})
}
var images = function(data) {
return data.map(function(character) {
return character.img;
})
}
function compose(func1, func2) {
return function(data) {
return func2(func1(data));
};
}
var displayCharacterImages = compose(humans, images);
我不明白的一件事是数据将在
compose
函数中传递到哪里?我的意思是我们只传递 func1、func2 作为参数。那么compose
函数中的数据可以去哪里呢?
我还是个新手,所以请帮助我理解这一点
Compose
函数返回一个 function 而不是值。
因此,当您调用 compose
时,您会得到一个 function。
displayCharacterImages
是一个 函数,而不是值。
data
变量是返回函数参数。
基本上,你会这样做:
displayCharacterImages(foo)
data
这里会得到你传入的值foo
。