
JavaScript: Funkcje
Wyodrębnione fragmenty programu, które mogą być wielokrotnie wywoływane z różnych jego miejsc.
Najprostszym przykładem funkcji jest wypisująca na ekran zadany tekst.
function przywitaj(){ document.write("Cześć"); } przywitaj();
Nie przyjmowała ona żadnych wartości parametrów wejściowych oraz nic nie zwracała (return).
Została wywołana za pomocą instrukcji przywitaj(); i dokładnie w tym miejscu programu został wypisany tekst Cześć.
Rozwińmy nieco najprostszy przykład dodając parametr wejściowy, jakim jest imię.
function przywitaj_imie(imie){ document.write("Cześć " + imie); } przywitaj_imie("Gargamel");
Rezultatem działania powyższego skryptu będzie wypisanie na ekran: Witaj Gargamel.
Kolejnym przykładem będzie wywołanie naszą funkcją alarm działanie metody alert, wywołującej na ekran okienko z zadanym komunikatem.
function alarm(){ alert("Alarm włączony!"); }
Funkcję naszą wywołamy wykorzystując metodę onclick na przycisku.
<button onclick="alarm()">Włącz alarm</button>
Kolejny przykład przyjmuje wartość parametru wejściowego o nazwie liczba, zwraca natomiast efekt sprawdzenia, czy liczba jest parzysta. Efektem wywołania funkcji będzie true w przypadku liczby parzystej, bądź false w przeciwnym razie.
function czyparzysta(liczba){ return liczba % 2 === 0; } czyparzysta(30); // true czyparzysta(21); // false
Aby otrzymać wartość bezwzględną z zadanej liczby wewnątrz funkcji wykorzystamy instrukcję warunkową.
function bezwzgledna(x){ if(x<0) x*=-1; return x; } bezwzgledna(-4); // 4
Nieco bardziej skomplikowanym przykładem jest funkcja wywołująca samą siebie, aż do spełnienia warunku i zwrócenia wyniku. Jest to przykład funkcji rekurencyjnej obliczającej silnię z zadanej liczby.
function silnia(n) { if (n === 0) { return 1; } return n * silnia(n - 1); } silnia(5); // 120
Na koniec trzy przykłady stworzenia funkcji.
function suma(a, b) { return a + b; } var suma2 = function(a, b) { return a + b; } var suma3 = (a, b) => a + b; document.write(typeof suma1 === 'function'); // => true document.write(typeof suma2 === 'function'); // => true document.write(typeof suma3 === 'function'); // => true