Параметри спољашње и унутрашње функције у JavaScript-у
Хајде да направимо да и спољашња функција и унутрашња примају параметре:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Проследимо параметар спољашње функције у позив унутрашње функције:
function test(num) {
function func(localNum) {
console.log(localNum); // исписаће 1
}
func(num); //!! прослеђујемо параметар
}
test(1); // прослеђујемо параметром број
Дакле, у унутрашњој функцији ће бити
доступна променљива num као спољашња
променљива из родитељске функције и променљива
localNum, која је локална променљива
унутрашње функције.
Обе ове променљиве ће имати исте вредности:
function test(num) {
function func(localNum) {
console.log(num); // исписаће 1
console.log(localNum); // исписаће 1
}
func(num);
}
test(1);
Разлика између њих ће бити у следећем: ако
се у унутрашњој функцији промени променљива
num - промениће се и у спољашњој функцији:
function test(num) {
function func(localNum) {
num = 2; // мењамо променљиву num
}
func(num); // прослеђујемо параметар
console.log(num); // исписаће 2
}
test(1); // прослеђујемо параметром број
А променљива localNum ће бити локална.
Њене промене неће довести до никаквих
промена у спољашњој функцији. А и сама
променљива localNum неће бити видљива
изван унутрашње функције:
function test(num) {
function func(localNum) {
localNum = 2; // мењамо променљиву num
}
func(num); // прослеђујемо параметар
}
test(1); // прослеђујемо параметром број
Одредите, не покрећући код, шта ће се исписати у конзолу:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Одредите, не покрећући код, шта ће се исписати у конзолу:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Одредите, не покрећући код, шта ће се исписати у конзолу:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Одредите, не покрећући код, шта ће се исписати у конзолу:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Одредите, не покрећући код, шта ће се исписати у конзолу:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Одредите, не покрећући код, шта ће се исписати у конзолу:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);