JavaScript funksie definisies
JavaScript-funksies word gedefinieer met die
function
sleutelwoord.
Jy kan 'n funksieverklaring of 'n funksie -uitdrukking gebruik .
Funksieverklarings
Vroeër in hierdie tutoriaal het jy geleer dat funksies met die volgende sintaksis verklaar word:
function functionName(parameters) {
// code to be executed
}
Verklaarde funksies word nie onmiddellik uitgevoer nie. Hulle word "gestoor vir latere gebruik", en sal later uitgevoer word, wanneer hulle opgeroep (opgeroep) word.
Voorbeeld
function myFunction(a, b) {
return a * b;
}
Puntkommae word gebruik om uitvoerbare JavaScript-stellings te skei.
Aangesien 'n funksieverklaring nie 'n uitvoerbare stelling is nie, is dit nie algemeen om dit met 'n kommapunt te beëindig nie.
Funksie uitdrukkings
'n JavaScript-funksie kan ook gedefinieer word deur 'n uitdrukking te gebruik .
'n Funksie-uitdrukking kan in 'n veranderlike gestoor word:
Voorbeeld
const x = function (a, b) {return a * b};
Nadat 'n funksie-uitdrukking in 'n veranderlike gestoor is, kan die veranderlike as 'n funksie gebruik word:
Voorbeeld
const x = function (a, b) {return a * b};
let z = x(4, 3);
Die funksie hierbo is eintlik 'n anonieme funksie ('n funksie sonder 'n naam).
Funksies wat in veranderlikes gestoor word, het nie funksiename nodig nie. Hulle word altyd opgeroep (opgeroep) deur die veranderlike naam te gebruik.
Die funksie hierbo eindig met 'n kommapunt omdat dit 'n deel van 'n uitvoerbare stelling is.
Die Function() Constructor
Soos u in die vorige voorbeelde gesien het, word JavaScript-funksies gedefinieer met die function
sleutelwoord.
Funksies kan ook gedefinieer word met 'n ingeboude JavaScript-funksie-konstruktor genaamd
Function()
.
Voorbeeld
const myFunction = new Function("a", "b", "return a * b");
let x = myFunction(4, 3);
Jy hoef eintlik nie die funksiekonstruktor te gebruik nie. Die voorbeeld hierbo is dieselfde as om te skryf:
Voorbeeld
const myFunction = function (a, b) {return a * b};
let x = myFunction(4, 3);
Meeste van die tyd kan jy vermy om die new
sleutelwoord in JavaScript te gebruik.
Funksie Hys
Vroeër in hierdie tutoriaal het jy geleer oor "hys" ( JavaScript -hysing ).
Hys is JavaScript se verstekgedrag om verklarings na die bokant van die huidige omvang te skuif.
Hysing is van toepassing op veranderlike verklarings en op funksie verklarings.
As gevolg hiervan kan JavaScript-funksies opgeroep word voordat dit verklaar word:
myFunction(5);
function myFunction(y) {
return y * y;
}
Funksies wat met 'n uitdrukking gedefinieer word, word nie opgehef nie.
Self-oproep funksies
Funksie-uitdrukkings kan "self-inroepend" gemaak word.
'n Selfoproepende uitdrukking word outomaties opgeroep (begin) sonder om opgeroep te word.
Funksie-uitdrukkings sal outomaties uitgevoer word as die uitdrukking gevolg word deur ().
Jy kan nie self 'n funksieverklaring oproep nie.
Jy moet hakies rondom die funksie byvoeg om aan te dui dat dit 'n funksie-uitdrukking is:
Voorbeeld
(function () {
let x = "Hello!!"; // I will invoke myself
})();
Die funksie hierbo is eintlik 'n anonieme selfoproepende funksie (funksie sonder naam).
Funksies kan as waardes gebruik word
JavaScript-funksies kan as waardes gebruik word:
Voorbeeld
function myFunction(a, b) {
return a * b;
}
let x = myFunction(4, 3);
JavaScript-funksies kan gebruik word in uitdrukkings:
Voorbeeld
function myFunction(a, b) {
return a * b;
}
let x = myFunction(4, 3) * 2;
Funksies is objekte
Die typeof
operateur in JavaScript gee "funksie" vir funksies terug.
Maar JavaScript-funksies kan die beste beskryf word as objekte.
JavaScript-funksies het beide eienskappe en metodes .
Die arguments.length
eienskap gee die aantal argumente terug wat ontvang is toe die funksie aangeroep is:
Voorbeeld
function myFunction(a, b) {
return arguments.length;
}
Die toString()
metode gee die funksie as 'n string terug:
Voorbeeld
function myFunction(a, b) {
return a * b;
}
let text = myFunction.toString();
'n Funksie wat gedefinieer word as die eienskap van 'n voorwerp, word 'n metode na die voorwerp genoem.
'n Funksie wat ontwerp is om nuwe voorwerpe te skep, word 'n objekkonstruktor genoem.
Pyltjie funksies
Pyltjiefunksies laat 'n kort sintaksis toe vir die skryf van funksie-uitdrukkings.
Jy het nie die function
sleutelwoord, die return
sleutelwoord en die
krulhakies nodig nie .
Voorbeeld
// ES5
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
Pyltjiefunksies het nie hul eie nie this
. Hulle is nie goed geskik om objekmetodes te definieer nie .
Pylfunksies word nie gehys nie. Hulle moet gedefinieer word voordat hulle gebruik word.
Om te gebruik const
is veiliger as om te gebruik var
, want 'n funksie-uitdrukking is altyd konstante waarde.
Jy kan slegs die return
sleutelwoord en die krulhakies weglaat as die funksie 'n enkele stelling is. As gevolg hiervan kan dit 'n goeie gewoonte wees om hulle altyd te hou:
Voorbeeld
const x = (x, y) => { return x * y };
Pyltjiefunksies word nie in IE11 of vroeër ondersteun nie.