Parametry funkcji zewnętrznych i wewnętrznych w JavaScript
Sprawmy, aby zarówno funkcja zewnętrzna jak i wewnętrzna przyjmowały parametry:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Przekażmy parametr funkcji zewnętrznej do wywołania funkcji wewnętrznej:
function test(num) {
function func(localNum) {
console.log(localNum); // wypisze 1
}
func(num); //!! przekazujemy parametr
}
test(1); // przekazujemy parametrem liczbę
Okazuje się, że w funkcji wewnętrznej będzie
dostępna zmienna num jako zmienna zewnętrzna
z funkcji nadrzędnej oraz zmienna
localNum, będąca zmienną lokalną
funkcji wewnętrznej.
Obie te zmienne będą miały takie same wartości:
function test(num) {
function func(localNum) {
console.log(num); // wypisze 1
console.log(localNum); // wypisze 1
}
func(num);
}
test(1);
Różnica między nimi będzie następująca: jeśli
w funkcji wewnętrznej zmienimy zmienną
num - zmieni się ona również w funkcji zewnętrznej:
function test(num) {
function func(localNum) {
num = 2; // zmieniamy zmienną num
}
func(num); // przekazujemy parametr
console.log(num); // wypisze 2
}
test(1); // przekazujemy parametrem liczbę
A zmienna localNum będzie lokalna.
Jej zmiany nie będą prowadzić do żadnych
zmian w funkcji zewnętrznej. I sama
zmienna localNum nie będzie widoczna
na zewnątrz funkcji wewnętrznej:
function test(num) {
function func(localNum) {
localNum = 2; // zmieniamy zmienną num
}
func(num); // przekazujemy parametr
}
test(1); // przekazujemy parametrem liczbę
Określ, nie uruchamiając kodu, co zostanie wypisane w konsoli:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Określ, nie uruchamiając kodu, co zostanie wypisane w konsoli:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Określ, nie uruchamiając kodu, co zostanie wypisane w konsoli:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Określ, nie uruchamiając kodu, co zostanie wypisane w konsoli:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Określ, nie uruchamiając kodu, co zostanie wypisane w konsoli:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Określ, nie uruchamiając kodu, co zostanie wypisane w konsoli:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);