Javascript scope
Hello,
Kezdo vagyok JavaScript teren! Egy konyvet tanulmanyozok amely leirja hogyan mukodik a variable scope.
PHP-ben:Az $a erteke csak a fugvenyen belul lesz 4. Ha peldaul kivul is szeretnem hasznalni igy kell irjam:Ok visszaterek a JavaScript-hez. Azt olvastam, hogy egy valtozo akkor global JavaScript-ben ha nincs elotte a "var".
Egy pelda:Ez tenyleg igy igaz? vagy letezik JavaScript alatt is egy "global" sor a valtozo szamara?
Koszonom!
■ Kezdo vagyok JavaScript teren! Egy konyvet tanulmanyozok amely leirja hogyan mukodik a variable scope.
PHP-ben:
- function test()
- {
- $a = 4;
- return $a
- }
- function test()
- {
- global $a;
- $a = 4;
- return $a
- }
Egy pelda:
- function test()
- {
- a = 4;
- return a;
- }
Koszonom!




Igaz
Nem pont
Ha van a függvény számára elérhető változó, akkor az "a = 4" annak az értékét változtatja meg. Ha nincs, akkor létrehoz egy új, teljesen globálisat, és annak adja értékül. (Bár a létrehozásra szerintem szebb és átláthatóbb, ha a globális objektumot bővítjük ki /böngészőkben window/) Tehát nem biztos, hogy globális változót fogsz megváltoztatni, ha azt mondod, hogy "a = 4". Ellenben a "window.a = 3" majdnem biztosan globális változót változtat meg. Hacsaknem nem böngészőben vagy, vagy a window is el van takarva. :) A legbiztosabb (és legidegenebb) a "(function() {return this})().a = 4".
Ha "var" van előtte, akkor pedig létrehoz egy helyi változót, ami a függvényen belül (tehát a függvényen belüli függvényeken belül is) elérhető lesz. Kb. mint pascal-ban vagy ada-ban, csak ott nem tudsz létrehozni belülről.