Javascript? Hogyan müködik ez
Márt egy ideje foglalkozom a weboldalakkal, és most egy alap játékot akarok készíteni animációk stb nélkül. Egy saját felugró ablakkal kezdtem, más funkció még nincs meg de bele botlottam egy valami érdekességbe (Lehet nem az) amire kíváncsi vagyok. Minden felugró ablak egymás fölé kerül. Az utolsó a legfrissebb. Mindet magad kitudod "x" -elni de minden 5 másodperceben eltünik a legöregebbik.
Itt a kód: [link]
1. kérdés: Miert van az ha a "timer = setInterval(timer, 5000);" nál magát a timer változót bármi más névre teszem ami nem ugyan az mint a funkció neve akkor anyiszor történik meg egyszerre a funkció amíg minden felugró ablak el nem tünik.
2. Kérdés: a clearInterval(timer) miert nem megy nálam ? Valamit nagyon hibásan csináltam ? Nem szerepel ott a kódban jelenleg mert nem müködött. de így akartam volna: [link]
Köszi
1) ez csak tipp, de a timer változód valószínűleg egy pointer, így nem tudod felülírni, plusz nem értem, miért adod neki ugyanazt az argomentumot ami a neve is? Azzal ott mit akartál?
Az 1. argumentum az a függvény kell legyen, amit meghív 5 másodpercenként. Változóba meg úgy mentsd, hogy pl. const valtozonev = setInterval(timer, 5000)
2) a timer csak lokálisan létezik, ha nem returnölöd vagy nem globálisan kezeld, nem fogod tudni használni a cclearintervalt, mert a függvény scope-jában nicns benne.
2. kérdés: mert a timer változó hatóköre a newPopup() függvényen belül van. Miután az lefutott, a timer() függvényen belül már undefinied lesz az értéke.
Egyszerűsített példa:
#6:
"4 ha nem raksz elé var, let vagy const akkor maśik funkcioban is elérhető. "
Igen, mert ebben az esetben:
a változó globálisként viselkedik.
(Egyébként ez ellenjavallt: tessék rendesen deklarálni a változókat.)
Illetve még egy dolog: ne keverd a változók és a függvények neveit, mert abból csak gond adódik:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!