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.'