witam
Zacząłem uczyć się programowania w javascripcie i mam pewien problem. Mianowicie w wywoływaniu funkcji przez samą siebie ze zmniejszającym się parametrem przy każdym wywołaniu. Może podam przykład.
Prosta funkcja, która przyjmuje parametr 'liczba' i wypisuje w konsoli mniejszą liczbą o 1, aż dojdzie do 0.
Jeśli zapiszę tak, to nie działa:
function ZmniejajOJeden(liczba) {
if (liczba > 0) {
console.log(liczba--);
setTimeout(ZmniejajOJeden, 500);
}
};
A jeśli obuduje warunek w funkcję bez parametru i wywołam w funkcji ZmniejszajOJeden, to działa :
function ZmniejajOJeden(liczba) {
function ZmniejszajOJedenWewn() {
if (liczba > 0) {
console.log(liczba--);
setTimeout(ZmniejszajOJedenWewn, 500);
}
};
ZmniejszajOJedenWewn();
};
Czy możecie mi wytłumaczyć dlaczego tak się dzieje, bo na prawdę nie rozumiem.