Toon posts:

[js] Klassevariabele (this) i.c.m. setInterval()

Pagina: 1
Acties:

Verwijderd

Topicstarter
Bestaat er een mogelijkheid om de klassevariabele (this) binnen een setInterval() te gebruiken? Nu merk ik dat de variabele bij de tweede aanroep niet meer beschikbaar is.

JavaScript:
1
2
3
4
5
6
var Test = function ()
{
    setInterval(alert(this), 1000);
};

var t = new Test();

[ Voor 5% gewijzigd door Verwijderd op 02-06-2006 14:26 ]


Verwijderd

JavaScript:
1
2
3
4
5
6
7
var Test = function ()
{
    self = this;
    setInterval(function(){alert(self)}, 1000);
};

var t = new Test();

opnieuw scopen

[ Voor 6% gewijzigd door Verwijderd op 02-06-2006 14:37 ]


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

edit:

onzin

[ Voor 90% gewijzigd door SchizoDuckie op 02-06-2006 14:37 ]

Stop uploading passwords to Github!


Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 02 juni 2006 @ 14:35:
JavaScript:
1
2
3
4
5
6
7
var Test = function ()
{
    self = this;
    setInterval(function(){alert(self)}, 1000);
};

var t = new Test();

opnieuw scopen
Thanks!

Edit:

Ik merkte dat het in MSIE wel 'var self' moet zijn.

[ Voor 11% gewijzigd door Verwijderd op 02-06-2006 14:48 ]


Verwijderd

lekkere testcase btw, zit ik als een gek alertboxjes weg te klikken, doe dan een timeout ;)

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 02 juni 2006 @ 14:44:
lekkere testcase btw, zit ik als een gek alertboxjes weg te klikken, doe dan een timeout ;)
1 seconde is toch best te doen? Soms laat ik de timer per ongeluk wel eens onder de 1 seconde staan als ik testalerts d'r in gooi. Dan helpt alleen nog maar ctrl-alt-del. ;)

Verwijderd

Topicstarter
Waarom moet er trouwens 'function' voor de alert?

Verwijderd

probeer maar eens zonder :)

setInterval wil een expressie (string) of een functionreference, expressie vind ik een beetje eval achtig (het jeukt), dus geef ik liever een reference mee

JavaScript:
1
setInterval('alert(self)', 1000);
zou ook kunnen

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 02 juni 2006 @ 14:57:
probeer maar eens zonder :)

setInterval wil een expressie (string) of een functionreference, expressie vind ik een beetje eval achtig (het jeukt), dus geef ik liever een reference mee

JavaScript:
1
setInterval('alert(self)', 1000);
zou ook kunnen
Okee. Thanks voor de info!
Pagina: 1