Выразительный javascript. Функции высшего порядка
Добрый день
Продираюсь сквозь эту книгу. Застрял на этой главе http://habrahabr.ru/post/241155/ Помогите понять пожалуйста, что делает эта функция
function noisy(f) {
return function(arg) {
console.log("calling with", arg);
var val = f(arg);
console.log("called with", arg, "- got", val);
return val;
};
}
noisy(Boolean)(0);
// → calling with 0
// → called with 0 - got false
|
Kroy, пост не читал, но по коду видно, что функция создаёт функцию-"конвертер" значения.
noisy(Boolean) - возвращает функцию, которая конвертирует аргумент в Boolean: var converter = noisy(Boolean); console.log(converter(0), converter(1)); // false, true В noisy можно передать любую функцию (в данном случае передана функция Boolean).
var converter = noisy(function(v) {
return 'Hello, ' + v;
});
console.log(converter('Kroy'), converter('World')); // "Hello, Kroy", "Hello, World"
|
Спасибо
Вроде начинает доходить А почему функцию вызывают с двумя парами скобок? |
Цитата:
Тут немного о карринге |
| Часовой пояс GMT +3, время: 05:45. |