Parametrii funcțiilor externe și interne în JavaScript
Să facem astfel încât atât funcția externă cât și cea internă să accepte parametri:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Să transmitem parametrul funcției externe în apelul funcției interne:
function test(num) {
function func(localNum) {
console.log(localNum); // va afișa 1
}
func(num); //!! transmitem parametrul
}
test(1); // transmitem ca parametru numărul
Rezultă că în funcția internă va fi
accesibilă variabila num ca variabilă
externă din funcția părinte și variabila
localNum, fiind variabilă locală a
funcției interne.
Ambele aceste variabile vor avea aceleași valori:
function test(num) {
function func(localNum) {
console.log(num); // va afișa 1
console.log(localNum); // va afișa 1
}
func(num);
}
test(1);
Diferența dintre ele va fi următoarea: dacă
în funcția internă se modifică variabila
num - ea se va schimba și în funcția externă:
function test(num) {
function func(localNum) {
num = 2; // schimbăm variabila num
}
func(num); // transmitem parametrul
console.log(num); // va afișa 2
}
test(1); // transmitem ca parametru numărul
Iar variabila localNum va fi locală.
Modificările ei nu vor duce la niciun
schimb în funcția externă. Și variabila
localNum în sine nu va fi vizibilă
în afara funcției interne:
function test(num) {
function func(localNum) {
localNum = 2; // schimbăm variabila num
}
func(num); // transmitem parametrul
}
test(1); // transmitem ca parametru numărul
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);