/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
javascript variable scope
Fra : Svend Tofte


Dato : 09-01-01 19:59

Jeg er ikke en haj til scripting, men jeg ved godt hvordan det med
local og global variabler virker, men er der nogen begræsninger på
hvilke "ting" som kan gøres til globale variabler?

jeg har lige rodet med noget kode som ser sådan ud:
-----------------------------
<script>
function swap(){
var p = document.getElementById('mytxt');
p.firstChild.nodeValue=='this is a paragraph, read it and weep!'?
p.firstChild.nodeValue='hey there, this is some swapped content':
p.firstChild.nodeValue='this is a paragraph, read it and weep!';
}

function alignp(){
var p = document.getElementById('mytxt');
p.getAttribute('align')=='Left'?
p.setAttribute('align','right'):
p.setAttribute('align','left');
}
</script>
-----------------------------

jeg kan ikke putte var p = document.getElementById('mytxt'); uden for
de to funktioner, så få jeg en fejl, men hvis jeg fx laver et mere
simpelt script ala det her:

<script>
var myvar = 'dette er en test'
function blah(){
alert(myvar)
}
</script>

så virker det fint, men foroven så kan jeg ikke sætte "p" uden for,
hvorfor ikke? er der nogen måde jeg kan gører det på ellers?

 
 
claus (11-01-2001)
Kommentar
Fra : claus


Dato : 11-01-01 17:52


Svend Tofte <stofte@worldonline.dk> skrev i en
news:3a5b5e94.43802134@news.worldonline.dk...
> Jeg er ikke en haj til scripting, men jeg ved godt hvordan det med
> local og global variabler virker, men er der nogen begræsninger på
> hvilke "ting" som kan gøres til globale variabler?
[snip]

Som default er alle variable globale i JS det er først når du erklærer en
variable med nøgleordet "var" at den bliver lokal, så der er ingen nogen
begræsninger på hvilke "ting" som kan gøres til globale variabler.

> jeg har lige rodet med noget kode som ser sådan ud:
> -----------------------------
> <script>
> function swap(){
> var p = document.getElementById('mytxt');
> p.firstChild.nodeValue=='this is a paragraph, read it and weep!'?
> p.firstChild.nodeValue='hey there, this is some swapped content':
> p.firstChild.nodeValue='this is a paragraph, read it and weep!';
> }
>
> function alignp(){
> var p = document.getElementById('mytxt');
> p.getAttribute('align')=='Left'?
> p.setAttribute('align','right'):
> p.setAttribute('align','left');
> }
> </script>
> -----------------------------
>
> jeg kan ikke putte var p = document.getElementById('mytxt'); uden for
> de to funktioner, så få jeg en fejl.
[snip]

Du har jo erklæret var p og som følge deraf er var p kun tilrådighed
"lokalt" i functionen, jeg vil lige gøre opmærksom på:
det er den korrekte måde du har gjordt det på, hvis du har brug din variable
andre steder i din fil kan du kalde din function der hvor du har brug for
den (det er det der meningen med en function).

--
MVH
Claus Pryds
clarke@vip.cybercity.dk



Svend Tofte (14-01-2001)
Kommentar
Fra : Svend Tofte


Dato : 14-01-01 00:09

>det er den korrekte måde du har gjordt det på, hvis du har brug din variable
>andre steder i din fil kan du kalde din function der hvor du har brug for
>den (det er det der meningen med en function).

måske er det mig som er lidt dum, men, jeg vil gerne vide hvorfor
visse ting kan laves til variabler, mens andrer ikke kan, jeg tænkte
at det måske har noget at gører med at nogle ting er pointere, mens
andrer er rigtige values (jeg er ude og famle er, correct me if I'm
wrong).

i mit konkrete eksempel, kan dette fx ikke gøres til en global
variable, hvad enten jeg stikker et var foran eller ej.

p = document.getElementById('mytxt');

mens det her:

var myvar = 'dette er en test'

sagtens kan gøres til en global variable. dvs jeg declarer den uden
for min funktion. og min funktion vil så stadig virke, mens den
foroven (p), der vil scriptet kun virke hvis den er declaret inden for
min funktion. hvorfor?

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste