Op maandag 19 november 2001 16:50 schreef Pelle het volgende:
Dit kan niet
code:
1
2
3
| function poep(een,twee) {
setInterval('klaas(een,twee)',1000);
} |
een en
twee zijn lokale variabelen binnen de functie en zijn weer verdwenen na het doorlopen van de functie. Op het moment dat de 1000ms voorbij zijn zal de string voor setInterval pas geinterpreteerd worden en krijg je dus de "not defined" melding aangezien de vars niet meer bestaan.
Een oplossing zou kunnen zijn door niet de reference aan de functie mee te geven maar de waarde van de var:
code:
1
2
3
| function poep(een,twee) {
setInterval('klaas('+een+','+twee+')',1000);
} |
Of door gebruik te maken van globale variabelen:
code:
1
2
3
4
| var een=1, twee=2;
function poep() {
setInterval('klaas(een,twee)',1000);
} |
En dat doe je eigenlijk ook op het moment dat je (zoals in je andere voorbeeld) deze even in een andere var dumpt. Onderstaande zal bijvoorbeeld weer niet werken (vanwege de lokale vars):
code:
1
2
3
4
5
| function poep(een,twee) {
var drie = een;
var vier = twee;
setInterval('klaas(drie,vier)',1000);
} |
/disclaimer:
ik hoop dat het een beetje duidelijk is en dat ik niet al te grove fouten heb gemaakt in mijn uitleg

.