JavaScriptда аноним функционалар массиви
Мен илгари айтиб ўтганманки, JavaScriptда функционар худди сатр ёки сонлар каби ҳаракат қилади. Хусусан, функционардан таркиб топган массив ясаш мумкин. Куйидагини қилайлик:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
Келинг, масалан, массивнинг нол элементнинг мундарижасини консолга чиқарайлик:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
console.log(arr[0]); // биринчи функцянинг бошкина кодини курамиз
Куриб турганингиздек, юкоридаги мисолда биз функцянинг натижасини эмас, балки бошкина кодини оламиз.
Функця чақирилиши учун унга айлана дўмбалар ёзиш керак.
Бизнинг функцямиз arr[0]да сақлангани сабабли,
айлана дўмбаларни куб дўмбалардан кейин ёзиш керак,
мана буйича: arr[0](). Текширамиз:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
arr[0](); // '1' ни чиқаради
Шунингдек, биз функционар массивини сикл билан айланиб чиқиш ва шу сикл ичида ҳар бир функцяни чақириш мумкин:
let arr = [
function() {console.log('1')},
function() {console.log('2')},
function() {console.log('3')},
];
for (let func of arr) {
func(); // сиклда функцяларимизни чақирамиз
}
Учта функцядан иборат arr массивини ясанг.
Биринчиси return орқали 1 сонини
қайтарсин, иккинчиси - 2 сонини,
учинчиси - 3 сонини қайтарсин.
Яратган arr массивингиздан фойдаланиб,
мос функцяни чақириб, консолга 3 сонини чиқаринг.
Яратган arr массивингиздан фойдаланиб,
функционар натижаларининг йиғиндисини топинг (сиклсиз).
Яратган arr массивингизни сикл билан айланиб чиқиб,
барча функционар ишининг натижаларини консолга чиқаринг.