Массив с анонимными функциями в JavaScript

Я уже упоминал ранее, что функции в JavaScript ведут себя, будто строки или числа. В частности, можно сделать массив, состоящий из функций. Сделаем:

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

Давайте, например, выведем в консоль содержимое нулевого элемента массива:

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

console.log(arr[0]); // увидим исходный код первой функции

Как вы видите, в примере выше мы получаем исходный код функции, а не результат.

Чтобы происходил вызов функции, к ней нужно дописать круглые скобки. Так как наша функция хранится в arr[0], то круглые скобки нужно будет написать после квадратных, вот так: arr[0](). Проверим:

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

arr[0](); // выведет '1'

Можно также перебрать наш массив с функциями циклом и в этом цикле вызвать каждую из функций:

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

for (let func of arr) {
  func(); // вызываем наши функции в цикле
}
Задание 1

Сделайте массив arr с тремя функциями. Пусть первая возвращает через return число 1, вторая - число 2, третья - число 3.

Задание 2

Используя созданный вами массив arr выведите в консоль число 3, вызвав соответствующую функцию.

Задание 3

Используя созданный вами массив arr найдите сумму результатов функций (без цикла).

Задание 4

Переберите созданный вами массив arr циклом и выведите результаты работы всех функций в консоль.