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:
let 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:
let 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:
let 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:
let 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
}
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.
Använd den array arr som du skapade
och skriv ut talet 3 till konsolen genom att anropa
motsvarande funktion.
Använd den array arr som du skapade
och hitta summan av funktionernas resultat (utan loop).
Gå igenom den array arr som du skapade
med en loop och skriv ut resultaten från alla
funktioner i konsolen.