Parametri spoljne i unutrašnje funkcije u JavaScript-u
Hajde da napravimo tako da i spoljna funkcija i unutrašnja primaju parametre:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Prosledimo parametar spoljne funkcije u poziv unutrašnje funkcije:
function test(num) {
function func(localNum) {
console.log(localNum); // ispisaće 1
}
func(num); //!! prosleđujemo parametar
}
test(1); // prosleđujemo parametrom broj
Ispada da će u unutrašnjoj funkciji biti
dostupna promenljiva num kao spoljašnja
promenljiva iz roditeljske funkcije i promenljiva
localNum, koja je lokalna promenljiva
unutrašnje funkcije.
Obe ove promenljive će imati iste vrednosti:
function test(num) {
function func(localNum) {
console.log(num); // ispisaće 1
console.log(localNum); // ispisaće 1
}
func(num);
}
test(1);
Razlika između njih će biti u sledećem: ako
u unutrašnjoj funkciji promenimo promenljivu
num - ona će se promeniti i u spoljnoj funkciji:
function test(num) {
function func(localNum) {
num = 2; // menjamo promenljivu num
}
func(num); // prosleđujemo parametar
console.log(num); // ispisaće 2
}
test(1); // prosleđujemo parametrom broj
A promenljiva localNum će biti lokalna.
Njeni izmeni neće dovesti ni do kakvih
izmena u spoljnoj funkciji. Čak i sama
promenljiva localNum neće biti vidljiva
spolja iz unutrašnje funkcije:
function test(num) {
function func(localNum) {
localNum = 2; // menjamo promenljivu num
}
func(num); // prosleđujemo parametar
}
test(1); // prosleđujemo parametrom broj
Odredite, ne pokrećući kod, šta će se ispisati u konzoli:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Odredite, ne pokrećući kod, šta će se ispisati u konzoli:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Odredite, ne pokrećući kod, šta će se ispisati u konzoli:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Odredite, ne pokrećući kod, šta će se ispisati u konzoli:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Odredite, ne pokrećući kod, šta će se ispisati u konzoli:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Odredite, ne pokrećući kod, šta će se ispisati u konzoli:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);