Это функция функционального программирования, называемая currying. (относится также к partial function appliction)
Больше, чем >
обычно принимает 2 аргумента (один слева и один справа). Это способ подачи по одному.
Это может быть легче увидеть, что происходит, если вы называете это рядным:
greaterThan(10)(11);
Как видно из примера выше, 10
получает передается в качестве параметра n
, а затем 11
получает прошло для параметра m
.
Первое приложение, которое передает 10
выдает функцию, которая выглядит следующим образом:
function(m) { return m > 10; };
Это первый приложение в частичном применении.
Оттуда легко увидеть, как передается 11
, чтобы получить окончательный результат.
Таким образом, чтобы разбить его:
function greaterThan(n) {
return function(m) { return m > n; };
}
//var greaterThan10 = greaterThan(10); -- is equivalent to:
var greaterThan10 = function(m) { return m > 10; };
console.log(greaterThan10(11)); //--> true
Спасибо теперь очень ясно .. – whatever