Sposoby tworzenia funkcji w JS

Javascript jest niezwykle ekspresyjnym językiem. Istnieje w niej wiele ciekawych rozwiązań pozwalających tworzyć krótszy lub bardziej czytelny kod. W tej poradzie pokażę dwa różne podejścia do tworzenia funkcji / metod.

Sposób 1 – tradycyjny

[javascript]function nazwa_funkcji_1()
{
    alert("nazwa_funkcji_1: Ja istnieje!");
}[/javascript]

Jeśli kiedykolwiek tworzyłeś swoje funkcje, to z pewnością zapis ten jest ci dobrze znany. Zapis ten jest używany także w PHP. Po słowie kluczoowym function należy podać ciąg znaków spełniający odpowiednie warunki (nie może zaczynać się od liczby, nie może mieć spacji itp, i td.) po czym należy podać parę nawiasów. W nawiasach można podać argumenty, ale nie trzeba.

Drugi sposób

Wykorzystuje mechanizm funkcji anonimowej:

[javascript]var nazwa_funkcji_2 = function()
{
    alert("nazwa_funkcji_2: Ja istnieje!");
}[/javascript]

Tworzymy zmienną do której przypisujemy funkcję. Ważne: funkcję, a nie wynik funkcji! Czyli za każdym razem, kiedy napiszemy nazwę zmiennej i dodamy nawiasy, zostanie wywołana funkcja, którą przypisaliśmy do zmiennej.

Obie funkcje wywołuje się tak samo:

[javascript]nazwa_funkcji_1();
 nazwa_funkcji_2()[/javascript]

Oczywiście funkcja anonimowa może także przyjmować argumenty:

[javascript]var nazwa_funkcji_2 = function(a, b, c)
{
    alert("a: " + a + "\nb: " + b + "\nc: " + c);
}[/javascript]

Obie notacje są równoważne. Co więcej można zrobić tak:

[javascript]function suma(a, b)
{
     return a+b;
}
var przyklad_referencja = suma;
var przyklad_wynik = suma(2, 2);
alert(przyklad_referencja);
alert(przyklad_wynik);[/javascript]

Pierwszy alert wyświetli nam ciało funkcji, drugi wynik działania funkcji.

Istnieje co prawda jeszcze jeden sposób na tworzenie funkcji – new Function(), jednak jest to sposób rzadko używany i odradzany, choćby z powodów opisanych w artykule JSON vs konstruktory.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *