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:

javascriptlet arr = [
  function() {console.log('1')},
  function() {console.log('2')},
  function() {console.log('3')},
];

Väljendame näiteks konsooli nullindat elementi massiivist:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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
}
Задание 1

Tehke massiiv arr kolme funktsiooniga. Olgu esimene tagastab läbi return numbri 1, teine - numbri 2, kolmas - numbri 3.

Задание 2

Kasutades loodud massiivi arr kuvage konsooli number 3, kutsudes vastavat funktsiooni.

Задание 3

Kasutades loodud massiivi arr leidke funktsioonide tulemuste summa (ilma tsüklita).

Задание 4

Käige loodud massiiv arr läbi tsükliga ja kuvage kõigi funktsioonide tulemused konsooli.