Я читаю "Красноречивый JavaScript" (Новая версия), и я дошел до части функций более высокого порядка, и я смущен тем, что происходит в следующий код.
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
-
Почему вызов функции звучит так? Является ли (Boolean) литой? Кастинг для чего? возвращаемое значение? или аргумент? почему not (Boolean) шумный (0), если его возвращаемое значение. Или шумный ((Boolean) 0), если аргумент является тем, который был выбран.
noisy(Boolean)(0)
-
Что происходит в этой строке? Где f() даже определено?
var val = f(arg);