Array med anonyma funktioner i JavaScript

Jag har nämnt tidigare att funktioner i JavaScript beter sig som strängar eller siffror. Specifikt kan man skapa en array som består av funktioner. Låt oss skapa en:

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

Låt oss till exempel skriva ut innehållet i det nollte elementet i arrayen till konsolen:

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

console.log(arr[0]); // kommer att se källkoden för den första funktionen

Som du ser i exemplet ovan får vi funktionens källkod, inte resultatet.

För att funktionen ska anropas måste man lägga till parenteser efter den. Eftersom vår funktion lagras i arr[0] måste parenteserna skrivas efter hakparenteserna, så här: arr[0](). Låt oss prova:

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

arr[0](); // skriver ut '1'

Man kan också gå igenom vår array med funktioner med en loop och i den loopen anropa varje funktion:

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

for (let func of arr) {
  func(); // anropar våra funktioner i loopen
}
Задание 1

Skapa en array arr med tre funktioner. Låt den första returnera (via return) talet 1, den andra - talet 2, den tredje - talet 3.

Задание 2

Använd den array arr som du skapade och skriv ut talet 3 till konsolen genom att anropa motsvarande funktion.

Задание 3

Använd den array arr som du skapade och hitta summan av funktionernas resultat (utan loop).

Задание 4

Gå igenom den array arr som du skapade med en loop och skriv ut resultaten från alla funktioner i konsolen.