Parametre vonkajšej a vnútornej funkcie v JavaScripte
Urobme to tak, aby aj vonkajšia funkcia aj vnútorná prijímali parametre:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Odovzdajme parameter vonkajšej funkcie do volania vnútornej funkcie:
function test(num) {
function func(localNum) {
console.log(localNum); // vypíše 1
}
func(num); //!! odovzdávame parameter
}
test(1); // odovzdávame parameter číslo
Vychádza to tak, že vo vnútornej funkcii bude
dostupná premenná num ako vonkajšia
premenná z nadradenej funkcie a premenná
localNum, ktorá je lokálnou premennou
vnútornej funkcie.
Obe tieto premenné budú mať rovnaké hodnoty:
function test(num) {
function func(localNum) {
console.log(num); // vypíše 1
console.log(localNum); // vypíše 1
}
func(num);
}
test(1);
Rozdiel medzi nimi bude v nasledovnom: ak
vo vnútornej funkcii zmeníme premennú
num - zmení sa aj vo vonkajšej funkcii:
function test(num) {
function func(localNum) {
num = 2; // meníme premennú num
}
func(num); // odovzdávame parameter
console.log(num); // vypíše 2
}
test(1); // odovzdávame parameter číslo
A premenná localNum bude lokálna.
Jej zmeny nebudú viesť k žiadnym
zmenám vo vonkajšej funkcii. A ani samotná
premenná localNum nebude viditeľná
z vonku vnútornej funkcie:
function test(num) {
function func(localNum) {
localNum = 2; // meníme premennú num
}
func(num); // odovzdávame parameter
}
test(1); // odovzdávame parameter číslo
Určite, bez spustenia kódu, čo sa vypíše do konzoly:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Určite, bez spustenia kódu, čo sa vypíše do konzoly:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Určite, bez spustenia kódu, čo sa vypíše do konzoly:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Určite, bez spustenia kódu, čo sa vypíše do konzoly:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Určite, bez spustenia kódu, čo sa vypíše do konzoly:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Určite, bez spustenia kódu, čo sa vypíše do konzoly:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);