Доброго дня, читаю пятое издание фленгана и там есть такой пример в теме "замыкания":
function factorial(n) {
// Создать замыкание для этой функции
var inspector = function($) { return eval($); }
inspect(inspector, "Вход в функцию factorial()");
var result = 1;
while(n > 1) {
result = result * n;
n;
inspect(inspec tor, "factorial( ) loop");
}
inspect(inspector, "Выход из функ ции factorial()");
return result;
}
Так вот, как он вообще работает? Что за inspect и как вообще вызывается inspector ? Если можно, то подробно опишите пошагово, что тут происходит.