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.