JavaScript-ում ռեկուրսիայի աշխատանքը
Ծրագրավորման մեջ կա այնպիսի հասկացություն, ինչպիսին է
ռեկուրսիան - երբ ֆունկցիան կանչում է
ինքն իրեն: Դիտարկենք մի օրինակ:
Օգտագործելով ռեկուրսիա, արտածենք 1-ից
մինչև 10 թվերը:
let i = 1;
function func(){
console.log(i);
i++;
if (i <= 10){
func(); // այստեղ ֆունկցիան կանչում է ինքն իրեն
}
}
func();
Եկեք քննարկենք, թե ինչպես է աշխատում այս կոդը:
Մենք ունենք գլոբալ i փոփոխական
և func ֆունկցիա, որի ներսում կոնսոլում
արտածվում է i փոփոխականի պարունակությունը,
այնուհետև կատարվում է ++:
Եթե մեր i փոփոխականը փոքր է կամ
հավասար 10-ի, ապա ֆունկցիան կանչվում է կրկին:
Քանի որ i փոփոխականը գլոբալ է,
ապա ֆունկցիայի ամեն նոր կանչի դեպքում դրանում
կլինի նախորդ կանչի ժամանակ սահմանված i
փոփոխականի արժեքը:
Ստացվում է, որ ֆունկցիան կանչելու է ինքն իրեն
մինչև որ i-ն դառնա
10-ից մեծ:
Հաշվի առեք, որ մեր դեպքում անհնար է ֆունկցիան
գործարկել առանց if - եթե դա արվի,
ապա կստացվի ֆունկցիաների անվերջ կանչ: