Ֆունկցիաների փոխանցումը պարամետրերով JavaScript-ում

Ֆունկցիաները, թվերի, տողերի և զանգվածների նման, կարող են փոխանցվել որպես պարամետրեր այլ ֆունկցիաների։

Եկեք մանրամասն դիտարկենք գործնական օրինակով։ Ենթադրենք ունենք test ֆունկցիա, որը ընդունում է երկու պարամետր։

javascripttest(պարամետր1, պարամետր2);

Եկեք test ֆունկցիայի առաջին պարամետրին փոխանցենք անանուն ֆունկցիա, որը վերադարձնում է 1, իսկ երկրորդ պարամետրին՝ անանուն ֆունկցիա, որը վերադարձնում է 2։

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

Վերևում բերված կոդը դեռ չի աշխատում, քանի որ մենք ինքնին ֆունկցիան չենք ստեղծել։ Եկեք ստեղծենք այն։

javascriptfunction test(func1, func2) {
  
}

Ֆունկցիան սահմանելիս մենք նշեցինք երկու պարամետր - func1 և func2։ Այս պարամետրերը ոչինչ չգիտեն այն մասին, թե ինչ է նրանց մեջ փոխանցվելու։ Օրինակ, կարող ենք փոխանցել թվեր։

javascripttest(1, 2); // կանչում ենք ֆունկցիան

function test(func1, func2) {
  console.log(func1); // կարտածի 1
  console.log(func2); // կարտածի 2
}

Կամ կարող ենք փոխանցել ֆունկցիաներ։

javascripttest(
  function() {return 1;}, // առաջին պարամետրը
  function() {return 2;}  // երկրորդ պարամետրը
);

function test(func1, func2) {
  console.log(func1); // կարտածի 'function() {return 1;}'
  console.log(func2); // կարտածի 'function() {return 2;}'
}

Ինչպես տեսնում եք, այժմ կոնսոլ արտածվում է ֆունկցիաների սկզբնական կոդը։ Եկեք անենք այնպես, որ այն արտածի դրանց արդյունքները։ Դրա համար գրենք ֆունկցիաներին կլոր փակագծեր։

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

function test(func1, func2) {
  console.log( func1() ); // կարտածի 1
  console.log( func2() ); // կարտածի 2
}

Եկեք կոնսոլ արտածենք առաջին և երկրորդ ֆունկցիայի արդյունքների գումարը։

javascripttest(
  function() {return 1;},
  function() {return 2;}
);

function test(func1, func2) {
  console.log( func1() + func2() ); // կարտածի 3
}
Задание 1

Ստեղծեք test ֆունկցիա, որի պարամետրերով ընդունում է 3 ֆունկցիա։ Փոխանցեք դրան առաջին պարամետրով ֆունկցիա, որը վերադարձնում է 1, երկրորդով՝ ֆունկցիա, որը վերադարձնում է 2, երրորդով՝ ֆունկցիա, որը վերադարձնում է 3։ Արտածեք կոնսոլ ֆունկցիաների արդյունքների գումարը։