scootergrisen <scootergrisen@gmail.com> writes:
> Kan man have lokale variabler i Javascript ?
Variable erklæret inde i en funktionskrop er lokale til en udførsel
af funktionen.
I.e.,
function foo(x) {
var navn = x;
}
foo("ost");
foo("mus");
vil erklære to forskellige variable med navn "navn".
> Så man kan skrive sådan her på samme side og så variablerne bliver
> behandler som forskellige variabler selvom de hedder det samme.
>
> <script...>
> var navn = "ost";
> </script>
> <script...>
> var navn = "mus";
> </script>
Nej, de er begge erklæret i det globale scope, så det er den samme
variabel.
> Jeg vil gerne have at variablen navn har sit eget "scope" inde i hver
> sin <script> så jeg ikke skal skrive navn1 og navn2.
Det gøres typisk ved at pakke hver del ind i sin egen funktion, så
de får hvert sit scope.:
<script>
(function() {
var navn = "ost";
... noget der bruger variablen ...
})();
</script>
<script>
(function() {
var navn = "nus";
... noget andet der bruger den anden variabel ...
})();
</script>
Hvis man så skal erklære både lokale og global variable, så bliver
man nødt til at dele sin kode op, så den lokale del er pakket ind
i funktionen og den globale er udenfor, fx.:
// Funktion der er uafhængig af lokal variabel.
function globalfunk() { return 10; }
var globalfunkderkenderlokal;
var globalvar;
(function(){
// Den hemmelige lokale variabel.
var lokal = 42;
// Globale variable hvis værdi afhænger af noget lokalt skal
// erklæres udenfor, men initialiseres inde i funktionen.
globalvar = lokal * 2;
// Funktioner der skal have adgang til lokal-variablen
// skal skabes inde i funktionen.
globalfunkderkenderloak = function() { return lokal; }
})();
Held og lykke
/L
--
Lasse Reichstein Holst Nielsen
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'