Funkcja jako zmienna w JavaScript
A więc, w poprzedniej lekcji ustaliliśmy, że odwołując się do funkcji bez okrągłych nawiasów, otrzymujemy jej kod źródłowy.
W rzeczywistości jest to o wiele ciekawsze. W JavaScript, w przeciwieństwie do innych języków, funkcje są takimi samymi wartościami zmiennych, jak liczby, ciągi znaków i tablice.
Spójrzmy na przykład. Załóżmy, że mamy
na przykład funkcję func:
function func() {
console.log('!');
}
W rzeczywistości nie mamy funkcji func.
Mamy zmienną func, przechowującą
w sobie kod źródłowy funkcji.
Możemy, na przykład, nadpisać zmienną
func czymś innym, na przykład,
ciągiem znaków. W tym przypadku funkcja func
przestanie być funkcją, a stanie się ciągiem znaków.
Patrzcie na przykładzie:
function func() {
console.log('!');
}
func(); // wypisze '!'
func = 'string'; // nadpiszemy zmienną func
console.log(func); // wypisze 'string'
Stwórz funkcję func, która będzie
zwracać poprzez return jakiś ciąg znaków.
Wypisz wynik działania funkcji func
w konsoli.
Wypisz kod źródłowy funkcji func
w konsoli.
Przypisz do zmiennej func liczbę 123,
tym samym nadpisując funkcję w tej zmiennej.
Wypisz nową wartość zmiennej func
w konsoli.