JavaScript හි ශ්රිතයක් ආපසු ලබා දෙන ශ්රිතයක්
අප සතුව පහත දැක්වෙන පරිදි නූලක් ආපසු ලබා දෙන ශ්රිතයක් ඇතැයි සිතමු:
function func() {
return '!';
}
let result = func();
console.log(result); // '!' ප්රතිදානය කරයි
දැන් අපි නූල වෙනුවට, සමානව, නිර්නාමික ශ්රිතයක් ආපසු ලබා දෙමු:
function func() {
return function() {
return '!';
};
}
let result = func(); // result විචල්යයේ ශ්රිතයක් ඇත
console.log(result); // 'function() {return '!';}' ප්රතිදානය කරයි
ඔබට පෙනෙන පරිදි, result විචල්යය දැන්
ශ්රිතයක් නියෝජනය කරයි. අපි එහි ක්රියාකාරීත්වයේ
ප්රතිඵලය කොන්සෝලයට ප්රතිදානය කරමු. මේ සඳහා අපි
එයට වරහන් ලියමු:
function func() {
return function() {
return '!';
};
}
let result = func();
console.log( result() ); // '!' ප්රතිදානය කරයි
func() ඇමතුම ශ්රිතයක් ආපසු ලබා දෙන බැවින්,
අපට එම ආපසු ලැබෙන ශ්රිතය වහාම ඇමතිය හැකිය,
මේ ආකාරයට: func()() - පළමු
වරහන් func ශ්රිතයේ ප්රතිඵලය ලබා ගනී
(එයම ශ්රිතයක් වන), සහ දෙවන වරහන් func
හි ප්රතිඵලයට යොදනු ලැබේ.
අපි උත්සාහ කර බලමු:
function func() {
return function() {
return '!';
};
}
console.log( func()() ); // '!' ප්රතිදානය කරයි
func1 යනුවෙන් ශ්රිතයක් සාදන්න, එය
මෙලෙස ඇමතූ විට: func1()(),
1 අංකය ආපසු ලබා දේ. සමාන ශ්රිතයක්
func2 ලෙස සාදන්න, එය 2 අංකය ආපසු ලබා දේ.
මෙම ශ්රිතවල ප්රතිඵලවල එකතුව සොයන්න.