Funksie wat 'n funksie in JavaScript teruggee
Gestel ons het die volgende funksie wat 'n string teruggee:
function 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:
function 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:
function 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:
function func() {
return function() {
return '!';
};
}
console.log( func()() ); // sal '!' uitdruk
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.