JavaScript-terugroepe
"Ek sal later terugbel!"
'n Terugbel is 'n funksie wat as 'n argument na 'n ander funksie oorgedra word
Hierdie tegniek laat 'n funksie toe om 'n ander funksie te roep
'n Terugbelfunksie kan loop nadat 'n ander funksie voltooi is
Funksie volgorde
JavaScript-funksies word uitgevoer in die volgorde wat hulle genoem word. Nie in die volgorde waarin hulle gedefinieer is nie.
Hierdie voorbeeld sal uiteindelik "Totsiens" vertoon:
Voorbeeld
function myFirst() {
myDisplayer("Hello");
}
function
mySecond() {
myDisplayer("Goodbye");
}
myFirst();
mySecond();
Hierdie voorbeeld sal uiteindelik "Hallo" vertoon:
Voorbeeld
function myFirst() {
myDisplayer("Hello");
}
function
mySecond() {
myDisplayer("Goodbye");
}
mySecond();
myFirst();
Volgordebeheer
Soms wil jy beter beheer hê oor wanneer om 'n funksie uit te voer.
Gestel jy wil 'n berekening doen, en vertoon dan die resultaat.
Jy kan 'n sakrekenaarfunksie ( myCalculator
) oproep, die resultaat stoor en dan 'n ander funksie ( myDisplayer
) oproep om die resultaat te vertoon:
Voorbeeld
function myDisplayer(some) {
document.getElementById("demo").innerHTML = some;
}
function myCalculator(num1, num2) {
let sum = num1 + num2;
return sum;
}
let result = myCalculator(5, 5);
myDisplayer(result);
Of jy kan 'n sakrekenaarfunksie ( myCalculator
) noem en die sakrekenaarfunksie die vertoonfunksie ( myDisplayer
) laat oproep:
Voorbeeld
function myDisplayer(some) {
document.getElementById("demo").innerHTML
= some;
}
function myCalculator(num1, num2) {
let sum = num1 + num2;
myDisplayer(sum);
}
myCalculator(5, 5);
Die probleem met die eerste voorbeeld hierbo is dat jy twee funksies moet oproep om die resultaat te vertoon.
Die probleem met die tweede voorbeeld is dat jy nie kan verhoed dat die sakrekenaarfunksie die resultaat vertoon nie.
Nou is dit tyd om 'n terugbel in te bring.
JavaScript-terugroepe
'n Terugbel is 'n funksie wat as 'n argument na 'n ander funksie oorgedra word.
Deur 'n terugbel te gebruik, kan jy die sakrekenaarfunksie ( myCalculator
) met 'n terugbel oproep, en laat die sakrekenaarfunksie die terugbel laat loop nadat die berekening voltooi is:
Voorbeeld
function myDisplayer(some) {
document.getElementById("demo").innerHTML
= some;
}
function myCalculator(num1, num2, myCallback) {
let sum = num1 + num2;
myCallback(sum);
}
myCalculator(5, 5, myDisplayer);
In die voorbeeld hierbo, myDisplayer
is die naam van 'n funksie.
Dit word deurgegee myCalculator()
as 'n argument.
Wanneer jy 'n funksie as 'n argument deurgee, onthou om nie hakies te gebruik nie.
Regs: myCalculator(5, 5, myDisplayer);
Verkeerde: myCalculator(5, 5, myDisplayer());
Wanneer om 'n terugbel te gebruik?
Die voorbeelde hierbo is nie baie opwindend nie.
Hulle is vereenvoudig om jou die terugbelsintaksis te leer.
Waar terugroepe regtig skyn, is in asynchrone funksies, waar een funksie moet wag vir 'n ander funksie (soos om te wag vir 'n lêer om te laai).
Asinchroniese funksies word in die volgende hoofstuk behandel.