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);