JavaScript-de funksiýa gaýtaryan funksiýa

Bizde setir gaýtaryan şeýle bir funksiýa bar diýeliň:

javascriptfunction func() {
  return '!';
}

let result = func();
console.log(result); // '!' çykarar

Indi setir ýerine, meňzeşlikde, anonim funksiýa gaýtaralyň:

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

let result = func(); // result üýtgeýjisinde funksiýa bolar
console.log(result); // 'function() {return '!';}' çykarar

Görşüňiz ýaly, result üýtgeýjisi indi funksiýadyr. Onuň işiniň netijesini konsola çykaralyň. Bun üçin ýaýly çyzykly äýjegi ýazalyň:

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

let result = func();
console.log( result() ); // '!' çykarar

func() çagyryşy funksiýa gaýtaranymyz üçin, biz şol gaýtarylan funksiýany derrew çakyryp bileris, şeýle: func()() - birinji ýaýly çyzykly äýjegiler func funksiýasynyň netijesini alyň (özü funksiýa bolýan), ikinji ýaýly çyzykly äýjegiler bolsa func netijesine ulanylýar.

Gözden geçirip göreliň:

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

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

Şeýle bir func1 funksiýasyny ýasaň, şeýle çagyrylanda: func1()(), 1 sanyny gaýtarsyn. Şuňa meňzeş func2 funksiýasyny ýasaň, 2 sanyny gaýtarsyn. Bu funksiýalaryň netijeleriniň jemini tapyň.