以一个函数作为返回结果。
忽略参数返回一个常量的函数:
repeatedly(3, function() {
return "Foo";
}
- 返回一个常量,几乎是函数式编程的一个设计模式,经常简称为
k
- 称其为:always
function always(VALUE) {
return function() {
return VALUE;
}
}
- 闭包会捕获一个值(或引用),并返回相同的值
var f = always(function() {})
f() === f() // ==> true
- 每一个新的闭包都会捕获不一样的值
var g = always(function() {})
f() === g() // ==> false
always
这样的函数被称之为组合子(combinator).
这里的实现和ui5里的jQuery.sap.getter
是完全一样的,但是任然没有完全明白它的实际用途。
接收一个方法,并在任何给定的对象上调用它。
function invoker(NAME, METHOD) {
return function(target) {
if (!existy(target)) fail("Must provide a target")
var targetMethod = target[NAME],
args = _.rest(arguments);
return doWhen(existy(targetMethod) && METHOD === targetMethod), function() {
return targetMethod.apply(target, args);
});
};
}
var rev = invoker('reverse', Array.prototype.reverse);
_map([[1, 2, 3], rev];