Jak pierwszy raz zobaczyłem coś takiego w JavaScript to pomyślałem – co się tutaj dzieje…? Jednak po chwili zastanowienia okazało się, że sprawa jest prosta – funkcja run zwraca funkcję, którą można od razu wywołać. Spójrzmy na przykład:
function run(arg1){
console.log(arg1);
return function(arg2){
console.log(arg2);
}
}
Przy wywołaniu:
run('runFunction')('fallbackFunction');
Otrzymujemy wypisane w konsoli:
runFunction
fallbackFunction