Javascript 如果一个函数接受一个值并返回一个返回该值的函数,你会怎么称呼它?

Javascript 如果一个函数接受一个值并返回一个返回该值的函数,你会怎么称呼它?,javascript,Javascript,我正在使用Lodash和compose尝试一种功能性更强的Javascript风格。我注意到有时需要一个返回值的函数。我想知道这叫什么,这样我就能知道Lodash是否真的有这种方法 var returnFn = function (i) { return function () { return i; }; }; 例如: _.compose(doSomething, returnFn({ foo: 'bar' }); 而不是: _.compose(doSomething, f

我正在使用Lodash和compose尝试一种功能性更强的Javascript风格。我注意到有时需要一个返回值的函数。我想知道这叫什么,这样我就能知道Lodash是否真的有这种方法

var returnFn = function (i) {
  return function () {
    return i;
  };
};
例如:

_.compose(doSomething, returnFn({ foo: 'bar' });
而不是:

_.compose(doSomething, function () {
    return { foo: 'bar' };
});

它们被调用。

一个生成另一个函数的函数被称为,正如Ingo所说

返回第一个参数的函数称为

如果一个函数接受一个值并返回一个返回该值的函数,你会怎么称呼它

你所拥有的似乎是一个,在哈斯克尔被称为。当它返回一个函数时,它是一个函数,也可能被称为函数。返回的函数-a-是一个函数,因为它可以访问外部函数的参数

所以我可以找出Lodash是否真的有这种方法

var returnFn = function (i) {
  return function () {
    return i;
  };
};
不,没有。但是,您可以通过以下方式轻松编写该函数:

var returnFn = _.bind(_.partial, null, _.identity);
不过,您的简单实现会快得多

您在那里所做的只是,不应该使用
compose
来完成它。配合

_.partial(doSomething, {foo: 'bar'});

你是说这种方式的命名法或模式名是什么?或者您想调用要执行的函数?在Common Lisp中,它被调用。不过,我不知道我在野外见过它。