Fonksiyonlar parantezi olmadan argüman olarak veya başka bir fonksiyon içinde kullanarak yürütülebilir. Buna callback (geri çağırma) denir. Örnek.
functionsonucGoster(sonuc) { //bu fonksiyonu argüman yaparak geri çağıracağız.returnalert(sonuc);}functiontopla(sayi1,sayi2,birFonksiyon) {let toplam = sayi1 + sayi2;birFonksiyon(toplam); //callback: geri çağırma}topla(20,20,sonucGoster); //geri çağrım için argüman verdik.
Normalde sırayla (satır satır) yürütülen program akışında sırada olmayan bir kod birimini geri çağırma sayesinde yürütebiliyoruz.
functionisimAl() { // bu fonksiyon geri çağrılacak.let isim =prompt('Kullanıcı Adınızı Giriniz','Kullanıcı');return isim;}functionfonk(foo) {let user =foo(); //callback: geri çağırmareturnalert(`Giriş Başarılı: ${user}`)}fonk(isimAl); // geri çağrılacak fonksiyon argüman olarak verildi.
Fonksiyonların geri çağrılarak kodun akışında doğrusal olmayan başvurular yapması kıymetlidir. Örnek:
functionfx() {returnconsole.log(`F(x) fonksiyonu`);}functionfy(p1) {p1(); // akışta sırada olmayan bir kod bloğunu çalıştırdıkreturnconsole.log(`F(y) fonksiyonu`);}fy(fx);