Parametri zunanje in notranje funkcije v JavaScript
Naj naredimo tako, da tako zunanja funkcija kot notranja sprejemata parametre:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Posredujmo parameter zunanje funkcije v klic notranje funkcije:
function test(num) {
function func(localNum) {
console.log(localNum); // izpiše 1
}
func(num); //!! podajamo parameter
}
test(1); // podajamo parameter število
Izkazalo se je, da bo v notranji funkciji
dostopna spremenljivka num kot zunanja
spremenljivka iz nadrejene funkcije in spremenljivka
localNum, ki je lokalna spremenljivka
notranje funkcije.
Obe ti spremenljivki bosta imeli enaki vrednosti:
function test(num) {
function func(localNum) {
console.log(num); // izpiše 1
console.log(localNum); // izpiše 1
}
func(num);
}
test(1);
Razlika med njima bo v naslednjem: če
v notranji funkciji spremenimo spremenljivko
num - se bo spremenila tudi v zunanji funkciji:
function test(num) {
function func(localNum) {
num = 2; // spreminjamo spremenljivko num
}
func(num); // podajamo parameter
console.log(num); // izpiše 2
}
test(1); // podajamo parameter število
Spremenljivka localNum pa bo lokalna.
Njenih sprememb ne bo povzročilo nobenih
sprememb v zunanji funkciji. Pa tudi sama
spremenljivka localNum ne bo vidna
zunaj notranje funkcije:
function test(num) {
function func(localNum) {
localNum = 2; // spreminjamo spremenljivko num
}
func(num); // podajamo parameter
}
test(1); // podajamo parameter število
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);