Skąd zwracana funkcja wie, że parametr należy do niej?

0

Witam, mam jedno pytanie odnośnie zwracania funkcji.

function fun(echo) {
	console.log(echo);
}
function echoMaker() {
	return fun;
}
var bigFun = echoMaker();
console.log(bigFun);
bigFun("Is there an echo?");

Wydawało mi się, że funkcja bigFun wygląda tak:

function echoMaker() {
    function fun(echo) {
        console.log(echo);
    }
}

Gdy wywołam funkcję bigFun z parametrem "lalalal" to otrzymuję "lalalla", skąd w takim razie funkcja fun wie, że parametr tyczy się jej.. Trochę jestem zmieszny i byłbym wdzięczny gdyby ktoś mi to w dwóch słowach wytłumaczył.

Czy jest może tak, że w momencie wywołania wywołuje się funkcja echo maker, która zwraca funkcję fun, a referencja od tej funkcji zostaje przypisana do bigFun i dlatego parametr tam trafia?

2

Tak. Funkcja jest w JS obiektem, wiec mozna ja zwrocic za pomoca return. A potem wywolac zwrocons referencje. Mozna tez przekazywac referencje do funkcji jako argument inne funkcji (np. setTimeout(funkcja, 1000) ).

generalnie - sama nazwa funkcji bez nawiasów oznacza obiekt funkcji/referencje

1 użytkowników online, w tym zalogowanych: 0, gości: 1