我不明白示例中传递的高阶函数参数

问题描述 投票:0回答:1

我正在阅读有关高阶函数的文章。他们给出了这样的代码示例:

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
函数中的数据可以去哪里呢? 我还是个新手,所以请帮助我理解这一点

javascript function higher-order-functions
1个回答
1
投票

Compose
函数返回一个 function 而不是值。 因此,当您调用
compose
时,您会得到一个 function
displayCharacterImages
是一个 函数,而不是值。

data
变量是返回函数参数。

基本上,你会这样做:

displayCharacterImages(foo)

所以
data
这里会得到你传入的值
foo

© www.soinside.com 2019 - 2024. All rights reserved.