Функция как переменная в JavaScript
Итак, в предыдущем уроке мы выяснили, что обратившись к функции без круглых скобок, мы получаем ее исходный код.
На самом деле все намного интереснее. В JavaScript, в отличие от других языков, функции являются такими же значениями переменных, как числа, строки и массивы.
Давайте посмотрим на примере. Пусть у нас
есть, например, функция func:
function func() {
console.log('!');
}
На самом деле у нас нет функции func.
У нас есть переменная func, хранящая
в себе исходный код функции.
Мы можем, к примеру, затереть переменную
func чем-нибудь другим, например,
строкой. В этом случае функция func
больше не будет функцией, а будет строкой.
Смотрите на примере:
function func() {
console.log('!');
}
func(); // выведет '!'
func = 'string'; // затрем переменную func
console.log(func); // выведет 'string'
Сделайте функцию func, которая будет
возвращать через return какую-либо строку.
Выведите результат работы функции func
в консоль.
Выведите исходный код функции func
в консоль.
Запишите в переменную func число 123,
тем самым затерев функцию из этой переменной.
Выведите новое значение переменной func
в консоль.