Keresés

Új hozzászólás Aktív témák

  • Mr. Y
    őstag

    Ha csak kódmorzsákat osztasz meg, senki nem fog tudni segíteni.

    Ha egy függvény nem lát egy adott változót, annak lényegében három oka lehet:

    1. Láthatóság (scope). Javascriptben minden függvény automatikusan látja a rajta kívül deklarált változókat. Ha egy változót egy függvényben deklarálsz, az látható lesz azon függvények számára, amit ezen a függvényen belül deklarálsz. A globális változó automatikusan látható minden függvény számára.

    2. Elfedés. Ha van egy külső változód, amit az adott függvénynek látnia kell, de te az adott függvényen belül is deklarálsz egy pontosan ugyanolyan nevű változót, akkor onnantól a függvény számára hozzáférhetetlenné válik a külső változó. Innentől az adott néven már csak a saját lokális változódat látod, ami egy teljesen külön entitás.

    3. Sorrendiség. Azt hiszed, hogy az adott változó már megkapta a várt értéket, de valamiért a változóba írás később történik meg, mint a változó értékének kiolvasása.

    Van egy olyan sejtésem, hogy a kérdezőnek az alábbi problémája van:

    var x = 7;
    function myFunction() {
    x = x+3;
    }

    És minden kattintás után azt az eredményt kapja, hogy 10. Ő pedig azt szeretné, hogy a második kattintáskor már 13 legyen, a harmadiknál 16 és így tovább. Én úgy tudom, hogy vagy külső változóba mentve (DIV innerHTML) vagy window.localStorage megoldással lehetne kivitelezni, amit szeretne.
    Viszont a kérdése alapján van erre egy harmadik opció is. Ezt pl én sem tudom :)

Új hozzászólás Aktív témák