JavaScript Function Definition
- Vorige pagina JS Object Referentie
- Volgende pagina JS Functieparameters
JavaScript functies worden gedefinieerd door function
keyworddefiniërendefiniëren.
u kunt functies gebruikenVerklaringof functieExpressie.
functie-declaratie
In een eerdere les in deze cursus hebt u geleerd dat u functies kunt definiëren met de volgende syntaxVerklaringFunctie:
function functionName(parameters) { Code die moet worden uitgevoerd }
Gedeclareerde functies worden niet direct uitgevoerd. Ze worden 'opgeslagen voor later gebruik' en zullen later worden uitgevoerd wanneer ze worden aangeroepen.
Voorbeeld
function myFunction(a, b) { return a * b; }
puntkomma's worden gebruikt om uitvoerbare JavaScript statements te scheiden.
Omdat functiesVerklaringzijn geen uitvoerbare statements en eindigen zelden met een puntkomma.
functie-expressies
JavaScript functies kunnen ookExpressieom te definiëren.
Een functie-expressie kan worden opgeslagen in een variabele:
Voorbeeld
var x = function (a, b) {return a * b};
Na het opslaan van de functie-expressie in een variabele, kan deze variabele worden gebruikt als een functie:
Voorbeeld
var x = function (a, b) {return a * b}; var z = x(4, 3);
De functie hierboven is eigenlijk eenAnonieme functie(naamloze functies).
Functies die in variabelen worden opgeslagen hebben geen functienaam nodig. Ze worden altijd aangeroepen met de variabelenaam.
De functie hierboven eindigt met een puntkomma, omdat het een deel is van een uitvoerbare statement.
Function() constructor
Zoals u heeft gezien in de vorige voorbeeld, worden JavaScript functies gedefinieerd door function
door een keyword gedefinieerd.
De functie kan ook worden gedefinieerd door een naam te geven Function()
van de ingebouwde JavaScript-functieconstructor om te definiëren.
Voorbeeld
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
Je hoeft echt geen functieconstructor te gebruiken. Het voorbeeld kan ook zo worden geschreven:
Voorbeeld
var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3);
In de meeste gevallen kun je vermijden om new
sleutelwoorden.
functiehoisting
In deze handleiding heb je al eerder geleerd over "hoisting" (hoisting).
Hoisting is het proces waarbij JavaScriptVerklaringStandaardgedrag om naar het begin van de huidige scope te verhuizen.
Hoisting wordt toegepast op variabele- en functie-declaraties.
Daarom kunnen JavaScript-functies voor de verklaring worden aangeroepen:
myFunction(5); function myFunction(y) { return y * y; }
Gebruikte expressies om functies te definiëren, worden niet omhooggehaald.
Zelf-aanroepende functies
Functie-expressies kunnen als "zelf-aanroepend" worden gebruikt.
Zelf-aanroepende expressies worden automatisch aangeroepen (beginnen), zonder dat er een aanroep wordt gedaan.
Functie-expressies worden automatisch uitgevoerd, als er ()
.
Je kunt geen functie-declaratie zelf aanroepen.
Je moet haakjes om de functie heen toevoegen om aan te geven dat het een functie-expressie is:
Voorbeeld
(function () { var x = "Hello!!"; // Ik zal mezelf aanroepen }();
De functie hierboven is eigenlijk eenAnonieme zelf-aanroepende functies(naamloze functies).
Functies kunnen als waarde worden gebruikt
JavaScript-functies kunnen als waarde worden gebruikt:
Voorbeeld
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
JavaScript-functies kunnen worden gebruikt in expressies:
Voorbeeld
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
functies objecten
In JavaScript zijn typeof
De operator retourneert "function
".
Maar het is het beste om JavaScript-functies te beschrijven als objecten.
Hebben alle JavaScript-functies:eigenschappenenMethode.
arguments.length
Retourneert het aantal argumenten dat de functie bij het worden aangeroepen heeft ontvangen:
Voorbeeld
function myFunction(a, b) { return arguments.length; }
toString()
De methode returnt een functie als string:
Voorbeeld
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
Functies die zijn gedefinieerd als objecteigenschappen, worden objectmethoden genoemd.
Functies die zijn ontworpen om nieuwe objecten te creëren, worden objectconstructiefuncties (objectconstructeurs) genoemd.
Arrow functions
Arrow functions laten een korte syntaxis toe om functieexpressies te schrijven.
Je hebt geen function-sleutel, return-sleutel en accolades nodig.
Voorbeeld
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
Arrow functions hebben geen eigen this. Ze zijn niet geschikt voor het definiëren van objectmethoden.
Arrow functions worden niet opgeheven. Ze moeten voor gebruik worden gedefinieerd.
Gebruik van const is veiliger dan var, omdat de functieexpressie altijd een constante waarde is.
Als de functie een enkele statement is, kan alleen de return-sleutel en de accolades worden weggelaten. Daarom kan het een goede gewoonte zijn om deze te behouden:
Voorbeeld
const x = (x, y) => { return x * y };
IE11 of eerder ondersteunt geen arrow functions.
- Vorige pagina JS Object Referentie
- Volgende pagina JS Functieparameters