Kurs języka HTML i CSS

Poradnik webmastera

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki

Sposoby przekazywania argumentów

Email Drukuj PDF

W wielu językach programowania można wybrać sposób przekazywania argumentów funkcji — przez wartość bądź przez referencję. W języku JavaScript argumenty funkcji są przekazywane tylko przez wartość. Oznacza to, że w rzeczywistości funkcja otrzymuje ich kopie i na tych kopiach wykonuje wszelkie operacje. Nie jest więc w stanie dokonać żadnej modyfikacji oryginału. Ten problem ilustruje przykład znajdujący się na listingu 2.30.

Listing 2.30. Przekazywanie argumentu przez wartość

<script type="text/javascript">

function dodajJeden(liczba)

{

  liczba = liczba + 1;

}

liczba = 1;

document.write("Przed wywołaniem funkcji zmienna liczba = ");

document.write(liczba + "<br \>");

 

dodajJeden(liczba);

 

document.write("Po wywołaniu funkcji zmienna liczba = ");

document.write(liczba + "<br \>");

</script>

Widoczna w skrypcie funkcja dodajJeden przyjmuje argument o nazwie liczba, a wewnątrz jej kodu wartość argumentu jest zwiększana o jeden. W dalszej części kodu powstała zmienna liczba, której została przypisana wartość 1, i została ona przekazana funkcji dodajJeden. Instrukcje document.write pozwalają na śledzenie stanu zmiennej przed wywołaniem funkcji i po nim. Moglibyśmy oczekiwać, że przed wywołaniem wartością liczba będzie 1, natomiast po wywołaniu — 2. Jak jednak widać na rysunku 2.6, w obu przypadkach jest to 1. Dlaczego? Otóż skoro argument został przekazany przez wartość, funkcja dodajJeden otrzymała tylko kopię zmiennej liczba zawierającą jej wartość. Wszystkie operacje wewnątrz funkcji odbywały się właśnie na tej kopii. Stąd oryginalna wartość zmiennej pozostała nienaruszona.

Rysunek 2.6. Efekt działania skryptu z listingu 2.30

 

JavaScript. Nieoficjalny podręcznik

JavaScript.
Nieoficjalny podręcznik

JavaScript. Pierwsze starcie

JavaScript.
Pierwsze starcie

JavaScript. Praktyczny kurs

JavaScript.
Praktyczny kurs

Nowości Helionu

Statystyki

Użytkowników : 766
Artykułów : 513
Zakładki : 28
Odsłon : 15600648