⊗jsPmFNFRF 252 of 505 menu

Funktion, der returnerer en funktion i JavaScript

Lad os sige, at vi har en funktion som denne, der returnerer en streng:

function func() { return '!'; } let result = func(); console.log(result); // vil udskrive '!'

Lad os nu, analogt hermed, returnere en anonym funktion i stedet for en streng:

function func() { return function() { return '!'; }; } let result = func(); // variablen result vil indeholde en funktion console.log(result); // vil udskrive 'function() {return '!';}'

Som du kan se, er variablen result nu en funktion. Lad os udskrive resultatet af dens eksekvering til konsollen. For at gøre dette skal vi skrive parenteser efter den:

function func() { return function() { return '!'; }; } let result = func(); console.log( result() ); // vil udskrive '!'

Da kaldet func() returnerer en funktion, kan vi umiddelbart kalde denne returnerede funktion, sådan her: func()() - de første parenteser henter resultatet af funktionen func (som selv er en funktion), og de anden parenteser anvendes på resultatet af func.

Lad os prøve:

function func() { return function() { return '!'; }; } console.log( func()() ); // vil udskrive '!'

Lav en funktion func1, sådan at når den kaldes sådan her: func1()(), returnerer den nummer 1. Lav en tilsvarende funktion func2, der returnerer nummer 2. Find summen af resultaterne af disse funktioner.

hyswuzcsms