⊗jsPmFNOIP 250 of 505 menu

Parametry vnější a vnitřní funkce v JavaScriptu

Udělejme to tak, aby jak vnější funkce tak i vnitřní přijímala parametry:

function test(num) { function func(localNum) { console.log(localNum); } }

Předáme parametr vnější funkce do volání vnitřní funkce:

function test(num) { function func(localNum) { console.log(localNum); // vypíše 1 } func(num); //!! předáváme parametr } test(1); // předáváme parametrem číslo

Vychází to tak, že ve vnitřní funkci bude dostupná proměnná num jako vnější proměnná z rodičovské funkce a proměnná localNum, která je lokální proměnnou vnitřní funkce.

Obě tyto proměnné budou mít stejné hodnoty:

function test(num) { function func(localNum) { console.log(num); // vypíše 1 console.log(localNum); // vypíše 1 } func(num); } test(1);

Rozdíl mezi nimi bude v následujícím: pokud ve vnitřní funkci změníme proměnnou num - změní se i ve vnější funkci:

function test(num) { function func(localNum) { num = 2; // měníme proměnnou num } func(num); // předáváme parametr console.log(num); // vypíše 2 } test(1); // předáváme parametrem číslo

A proměnná localNum bude lokální. Její změny nebudou vést k žádným změnám ve vnější funkci. A ani samotná proměnná localNum nebude vidět zvenčí vnitřní funkce:

function test(num) { function func(localNum) { localNum = 2; // měníme proměnnou num } func(num); // předáváme parametr } test(1); // předáváme parametrem číslo

Určete, bez spuštění kódu, co se vypíše do konzole:

function test(num) { function func(localNum) { console.log(localNum); } func(num); } test(1);

Určete, bez spuštění kódu, co se vypíše do konzole:

function test(num) { function func(localNum) { console.log(localNum); } func(num + 1); } test(1);

Určete, bez spuštění kódu, co se vypíše do konzole:

function test(num) { function func(localNum) { console.log(num); } func(num + 1); } test(1);

Určete, bez spuštění kódu, co se vypíše do konzole:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(num); } test(1);

Určete, bez spuštění kódu, co se vypíše do konzole:

function test(num) { function func(localNum) { localNum = 2; } func(num); console.log(localNum); } test(1);

Určete, bez spuštění kódu, co se vypíše do konzole:

function test(num) { function func(localNum) { num = 2; } func(num); console.log(num); } test(1);
huidcsmsuzl