⊗jsPmClOVA 259 of 505 menu

Přístup k externím proměnným funkcí v JavaScriptu

Podívejme se na následující kód:

let num = 1; // nastavíme hodnotu proměnné function func() { console.log(num); // vypíšeme ji do konzole } func(); // zavoláme funkci

Jak jsem již zmiňoval dříve, hodnota proměnné nemusí nutně být před definicí funkce, hlavní je, aby byla před jejím voláním:

function func() { console.log(num); } let num = 1; func();

Ve skutečnosti to není tak úplně pravda. Naše funkce již dokonce před svým voláním zná hodnotu proměnné num:

let num = 1; function func() { console.log(num); // funkce již ví, že num = 1 }

Zde je složitější příklad:

let num = 1; // funkce v tomto okamžiku zjistí, že num = 1 function func() { console.log(num); } num = 2; // funkce v tomto okamžiku zjistí, že num = 2

Přidejme volání funkce:

let num = 1; // funkce v tomto okamžiku zjistí, že num = 1 func(); // vypíše 1 function func() { console.log(num); } func(); // vypíše 1 num = 2; // funkce v tomto okamžiku zjistí, že num = 2 func(); // vypíše 2

Ještě jednou: ve skutečnosti funkce zná hodnoty externích proměnných, dokonce i když není volána.

hidanlhyhu