jesteś tutaj
137
Przedstawienie funkcji
Poznawanie zasięgu zmiennych lokalnych i globalnych
Miejsce, w którym zdefiniujemy zmienne, określa ich zasięg, czyli to, gdzie będą dostępne,
a gdzie nie. Przeanalizujemy teraz przykład zmiennych globalnych i lokalnych — pamiętaj,
że zmienne definiowane poza funkcjami są zmiennymi o zasięgu globalnym, a definiowane
wewnątrz funkcji — zmiennymi o zasięgu lokalnym.
var avatar = ”ogolny”;
var skill = 1.0;
var pointsPerLevel = 1000;
var userPoints = 2008;
function getAvatar(points) {
var level = points / pointsPerLevel;
if (level == 0) {
return ”Nieděwiadek -ogi”;
} else if (level == 1) {
return ”Kot”;
} else if (level >= 2) {
return ”Goryl”;
}
}
function updatePoints(bonus, newPoints) {
var i = 0;
while (i < bonus) {
newPoints = newPoints + skill * bonus;
i = i + 1;
}
return newPoints + userPoints;
}
userPoints = updatePoints(2, 100);
avatar = getAvatar(2112);
Te cztery zmienne mają
zasięg globalny. Oznacza to,
że są zdefiniowane i widoczne
w całym kodzie poniżej.
Warto także pamiętać, że jeśli
dołączysz do strony dodatkowy
skrypt, to zmienne globalne
będą widoczne także w nim,
podobnie jak zmienne globalne
zdefiniowane w dołączonym
skrypcie będą widoczne
w tym kodzie!
Zmienna level jest zmienną
lokalną, dlatego jest
widoczna wyłącznie wewnątrz
funkcji getAvatar. Oznacza to,
że dostęp do zmiennej level
ma jedynie kod umieszczony
wewnątrz tej funkcji.
Zwróć także uwagę, że
funkcja getAvatar korzysta
ze zmiennej globalnej
pointsPerLevel.
I nie zapomnij o parametrze
points, który także ma zasięg
lokalny i jest dostępny
wyłącznie wewnątrz funkcji
getAvatar.
Wewnątrz funkcji updatePoints
tworzona jest kolejna zmienna
lokalna — i. Jest ona dostępna
wyłącznie dla kodu funkcji
updatePoints.
A w tym miejscu kodu mamy
dostęp wyłącznie do naszych
zmiennych globalnych, nie
mamy natomiast dostępu
do żadnych zmiennych
zadeklarowanych wewnątrz
funkcji, gdyż nie są one
widoczne w zasięgu globalnym.
Zmienne bonus oraz newPoints
są także zmiennymi lokalnymi
dostępnymi wewnątrz funkcji
updatePoints; natomiast
userPoints jest zmienną
globalną.
Get Programowanie w JavaScript Rusz głową! now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.