Funksie wat 'n funksie in JavaScript teruggee

Gestel ons het die volgende funksie wat 'n string teruggee:

javascriptfunction func() {
  return '!';
}

let result = func();
console.log(result); // sal '!' uitdruk

Kom ons probeer nou, op soortgelyke wyse, 'n anonieme funksie teruggee in plaas van 'n string:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

let result = func(); // die veranderlike result sal 'n funksie bevat
console.log(result); // sal 'function() {return '!';}' uitdruk

Soos jy kan sien, verteenwoordig die veranderlike result nou 'n funksie. Kom ons druk die resultaat van die uitvoering daarvan in die konsole uit. Om dit te doen, moet ons ronde hakies by skryf:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

let result = func();
console.log( result() ); // sal '!' uitdruk

Aangesien die aanroep func() 'n funksie teruggee, kan ons dadelik daardie teruggekeerde funksie aanroep, soos volg: func()() - die eerste stel ronde hakies kry die resultaat van die funksie func (wat self 'n funksie is), en die tweede stel ronde hakies word op die resultaat van func toegepas.

Kom ons probeer:

javascriptfunction func() {
  return function() {
    return '!';
  };
}

console.log( func()() ); // sal '!' uitdruk
Задание 1

Maak 'n funksie func1 wat, wanneer dit so aangeroep word: func1()(), die getal 1 teruggee. Maak 'n soortgelyke funksie func2 wat die getal 2 teruggee. Vind die som van die resultate van hierdie twee funksies.