Masyvas su anoniminėmis funkcijomis JavaScript
Jau minėjau anksčiau, kad funkcijos JavaScript elgiasi tarsi styginiai arba skaičiai. Konkrečiai, galima sukurti masyvą, sudarytą iš funkcijų. Sukurkime:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
Pavyzdžiui, išveskime į konsolę nulio elemento turinį:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
console.log(arr[0]); // pamatysime pirmosios funkcijos pirminį kodą
Kaip matote, aukščiau pateiktame pavyzdyje mes gauname funkcijos pirminį kodą, o ne rezultatą.
Kad funkcija būtų iškviečiama, prie jos reikia
pridėti skliaustelius. Kadangi mūsų funkcija
yra saugoma arr[0], skliaustelius
reikės rašyti po kvadratinių, štai
taip: arr[0](). Patikrinkime:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
arr[0](); // išves '1'
Taip pat galime pereiti mūsų masyvą su funkcijomis ciklu ir šiame cikle iškviesti kiekvieną funkciją:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
for (let func of arr) {
func(); // iškviečiame mūsų funkcijas cikle
}
Sukurkite masyvą arr su trimis funkcijomis.
Tegul pirmoji grąžina per return
skaičių 1, antroji - skaičių 2,
trečioji - skaičių 3.
Naudodamiesi jūsų sukurtu masyvu arr
išveskite į konsolę skaičių 3, iškvietę
atitinkamą funkciją.
Naudodamiesi jūsų sukurtu masyvu arr
rasti funkcijų rezultatų sumą (be ciklo).
Perkelkite jūsų sukurtą masyvą arr
ciklu ir išveskite visų funkcijų rezultatus
į konsolę.