你怎么称呼这种编程模式?

时间:2015-05-27 03:04:28

标签: javascript groovy

我正试图弄清楚如何在JavaScript中执行此操作,似乎无法为Google找到合适的字词。这是一种相当普遍的模式。

someOperation(obj) { resultOfSomeOperation -> 
    anotherOperation(resultOfSomeOperation)
}

推测someOperation是一种方法,它将obj作为参数,并将一个带有签名result -> ??的函数作为参数。你怎么称呼它?

1 个答案:

答案 0 :(得分:1)

我相信你所指向的模式是“回调”模式,或更普遍的“高阶函数”,其中函数将函数作为参数,然后以某种方式使用传入的函数。一些例子是Every,Map,Reduce等......这些通常使用lambda函数。

以下是有关这些主题的一些信息:Callbacks on WikipediaJavascriptIsSexy CallbacksEloquent Javascript Chapter 5

我依赖于Javascript示例,因为这是您使用的标记。随意问我澄清问题,我可以进一步解释。

以下是一个例子:

var exampleArray = [1, 2, 3, 4, 5];

exampleArray.map(function(num){
  return num * 2
});
// Returns [2, 4, 6, 8, 10];

如您所见,map使用传入的匿名函数.Map将给定函数应用于数组的每个元素,并将这些输出返回到新数组。这也可以通过提前定义函数并按名称传递来完成。

var exampleArray = [1, 2, 3, 4, 5];

var doubleValue = function(num) {
  return num * 2;
};

exampleArray.map(doubleValue);
// Returns [2, 4, 6, 8, 10];