Funkcje służą do przechowywania bloków kodu, który ma być wykorzystany wielokrotnie. Mogą one przyjmować od zera do kilku argumentów, a także zwracać wartość.
Funkcje można tworzyć na różne sposoby:
Przykład 2.32. Definicja funkcji
function foo() { /* zrób coś */ }
Przykład 2.33. Nazwane wyrażenie funkcyjne
var foo = function() { /* zrób coś */ }
Osobiście wolę, z pewnych przyczyn technicznych, tworzyć funkcje poprzez wyrażenia funkcyjne. Generalnie można się jednak spotkać z obiema metodami.
Korzystanie z funkcji
Przykład 2.34. Prosta funkcja
var przywitaj = function(osoba, powitanie) {
var tekst = powitanie + ', ' + osoba;
console.log(tekst);
};
przywitaj('Rebecca', 'Witaj');
Przykład 2.35: Funkcja zwracająca wartość
var przywitaj = function(osoba, powitanie) {
var tekst = powitanie + ', ' + osoba;
return tekst;
};
console.log(przywitaj('Rebecca','witaj'));
Przykład 2.36. Funkcja zwracająca inną funkcję
var przywitaj = function(osoba, powitanie) {
var tekst = powitanie + ', ' + osoba;
return function() { console.log(tekst); };
};
var pozdrowienie = przywitaj('Rebecca', 'Witaj');
pozdrowienie();
Samowykonujące się funkcje anonimowe
W języku JavaScript bardzo często wykorzystuję się samowykonujące się funkcje anonimowe. Funkcja tworzona jest wówczas poprzez wyrażenie funkcyjne, a następnie zostaje natychmiastowo wykonana. Rozwiązanie to jest niezwykle przydatne jeśli nie chcesz zaśmiecać globalnej przestrzeni nazw swoim kodem — zmienne zadeklarowane wewnątrz funkcji nie są widoczne poza nią.
Przykład 2.37. Samowykonująca się funkcja anonimowa
(function(){
var foo = 'Witaj, świecie';
})();
console.log(foo); // niezdefiniowane!
Funkcja jako argument
W języku JavaScript, funkcje można określić mianem „obywateli pierwszej kategorii” — mogą być one przypisywane do zmiennych lub przekazywane jako argumenty innych funkcji. Przekazywanie funkcji jako argumentu to bardzo częsta praktyka w jQuery.
Przykład 2.38. Przekazywanie funkcji anonimowej jako argumentu
var mojaFn = function(fn) {
var rezultat = fn();
console.log(rezultat);
};
mojaFn(function() { return 'witaj, świecie'; }); // rejestruje witaj, świecie
Przykład 2.39. Przekazywanie nazwanej funkcji jako argumentu
var mojaFn = function(fn) {
var rezultat = fn();
console.log(rezultat);
};
var mojaDrugaFn = function() {
return 'witaj, świecie';
};
mojaFn(mojaDrugaFn); // rejestruje witaj, świecie





Wysyłam...
Dodaj komentarz