JavaScript හි ශ්‍රිතයක් ආපසු ලබා දෙන ශ්‍රිතයක්

අප සතුව පහත දැක්වෙන පරිදි නූලක් ආපසු ලබා දෙන ශ්‍රිතයක් ඇතැයි සිතමු:

javascriptfunction func() {
  return '!';
}

let result = func();
console.log(result); // '!' ප්‍රතිදානය කරයි

දැන් අපි නූල වෙනුවට, සමානව, නිර්නාමික ශ්‍රිතයක් ආපසු ලබා දෙමු:

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

let result = func(); // result විචල්‍යයේ ශ්‍රිතයක් ඇත
console.log(result); // 'function() {return '!';}' ප්‍රතිදානය කරයි

ඔබට පෙනෙන පරිදි, result විචල්‍යය දැන් ශ්‍රිතයක් නියෝජනය කරයි. අපි එහි ක්‍රියාකාරීත්වයේ ප්‍රතිඵලය කොන්සෝලයට ප්‍රතිදානය කරමු. මේ සඳහා අපි එයට වරහන් ලියමු:

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

let result = func();
console.log( result() ); // '!' ප්‍රතිදානය කරයි

func() ඇමතුම ශ්‍රිතයක් ආපසු ලබා දෙන බැවින්, අපට එම ආපසු ලැබෙන ශ්‍රිතය වහාම ඇමතිය හැකිය, මේ ආකාරයට: func()() - පළමු වරහන් func ශ්‍රිතයේ ප්‍රතිඵලය ලබා ගනී (එයම ශ්‍රිතයක් වන), සහ දෙවන වරහන් func හි ප්‍රතිඵලයට යොදනු ලැබේ.

අපි උත්සාහ කර බලමු:

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

console.log( func()() ); // '!' ප්‍රතිදානය කරයි
Задание 1

func1 යනුවෙන් ශ්‍රිතයක් සාදන්න, එය මෙලෙස ඇමතූ විට: func1()(), 1 අංකය ආපසු ලබා දේ. සමාන ශ්‍රිතයක් func2 ලෙස සාදන්න, එය 2 අංකය ආපසු ලබා දේ. මෙම ශ්‍රිතවල ප්‍රතිඵලවල එකතුව සොයන්න.