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);