⊗jsPmFNFRF 252 of 505 menu

Functie die een functie retourneert in JavaScript

Stel dat we een functie hebben die een string retourneert:

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

Laten we nu, in analogie, in plaats van een string, een anonieme functie retourneren:

function func() { return function() { return '!'; }; } let result = func(); // in variabele result zit een functie console.log(result); // geeft 'function() {return '!';}' weer

Zoals je ziet, is de variabele result nu een functie. Laten we het resultaat van de uitvoering ervan naar de console loggen. Schrijf er hiervoor ronde haakjes achter:

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

Omdat de aanroep func() een functie retourneert, kunnen we deze geretourneerde functie meteen aanroepen, zoals dit: func()() - de eerste ronde haakjes verkrijgen het resultaat van de functie func (dat zelf een functie is), en de tweede ronde haakjes worden toegepast op het resultaat van func.

Laten we het proberen:

function func() { return function() { return '!'; }; } console.log( func()() ); // geeft '!' weer

Maak een functie func1, die wanneer zo aangeroepen: func1()(), het getal 1 retourneert. Maak een vergelijkbare functie func2, die het getal 2 retourneert. Bereken de som van de resultaten van deze functies.

itplsvcsru