⊗jsPmFNIF 247 of 505 menu

Indlejrede funktioner i JavaScript

Lad os sige, at vi har en funktion, der som parametre tager to tal og returnerer summen af kvadraterne af disse tal:

function func(num1, num2) { return num1 * num1 + num2 * num2; } console.log(func(2, 3)); // udskriver 13 (resultatet af 2 * 2 + 3 * 3)

Lad os udskille kvadratoperationen i en hjælpefunktion square:

function square(num) { return num * num; } function func(num1, num2) { return square(num1) + square(num2); } console.log(func(2, 3)); // udskriver 13

Lad os antage, at vi er sikre på, at funktionen square kun vil blive brugt i funktionen func og ikke i nogen andre.

I dette tilfælde ville det være praktisk at sikre, at ingen ved et uheld bruger den (det kunne være dig selv eller en anden programmør, der arbejder sammen med dig).

JavaScript har en elegant løsning: vi kan placere vores hjælpefunktion square inde i func. På denne måde vil vores hjælpefunktion kun være tilgængelig inde i func, men ikke udefra.

Lad os gøre dette:

function func(num1, num2) { function square(num) { return num * num; } return square(num1) + square(num2); } console.log(func(2, 3)); // udskriver 13

Et forsøg på at kalde square udefra func vil føre til en fejl:

function func(num1, num2) { function square(num) { return num * num; } return square(num1) + square(num2); } console.log(square(2)); //!! vil give en fejl

Lav en funktion func, som parametre vil tage to tal og returnere summen af kvadratet af det første tal med terningen af det andet tal. Lav til dette en hjælpefunktion square, som opløfter et tal i anden potens, og en hjælpefunktion cube, som opløfter et tal i tredje potens.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis