Это проблема из главы 5 Eloquent JS http://eloquentjavascript.net/05_higher_order.html.
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)(12);
// → calling with 0
// → called with 0 - got false
Может кто-нибудь объяснить, как f(arg) имеет смысл? Я имею в виду, что он вызывает аргумент f для другого аргумента arg?? Я очень смущен.
Как насчет части, которая имеет return val; Почему это должно быть там? Когда я удаляю его, код по-прежнему работает так, как должен.
Наконец, кто-нибудь может объяснить интерпретацию кода построчно? Как передать логическое значение в примере?
Большое спасибо