Massiiv anonüümsete funktsioonidega JavaScriptis
Ma olen juba varem maininud, et funktsioonid JavaScriptis käituvad nagu stringid või numbrid. Täpsemalt, saab teha massiivi, mis koosneb funktsioonidest. Teeme:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
Väljendame näiteks konsooli nullindat elementi massiivist:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
console.log(arr[0]); // näeme esimese funktsiooni lähtekoodi
Nagu näete, saame ülaltoodud näites funktsiooni lähtekoodi, mitte tulemust.
Et funktsiooni kutsumine toimuks, tuleb sellele
lisada ümarsulud. Kuna meie funktsioon
on salvestatud arr[0], siis tuleb ümarsulud
kirjutada ruutsulude järele, niimoodi:
arr[0](). Kontrollime:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
arr[0](); // väljastab '1'
Samuti saame meie massiivi funktsioonidega läbida tsükliga ja selles tsüklis kutsuda iga funktsiooni välja:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
for (let func of arr) {
func(); // kutsume meie funktsioone tsüklis välja
}
Tehke massiiv arr kolme funktsiooniga.
Olgu esimene tagastab läbi return
numbri 1, teine - numbri 2,
kolmas - numbri 3.
Kasutades loodud massiivi arr
kuvage konsooli number 3, kutsudes
vastavat funktsiooni.
Kasutades loodud massiivi arr
leidke funktsioonide tulemuste summa (ilma tsüklita).
Käige loodud massiiv arr läbi
tsükliga ja kuvage kõigi funktsioonide
tulemused konsooli.