Bonjour,
Je m'interroge sur la port�e de la variable this dans les fonctions... Voici l'exemple:
( vous reconnaitrez p-e l'utilisation de l'API googlemap, qui revient � dire que pour l'�venement onclick du marker il faut ex�cuter la fonction anonyme d�finie apr�s )
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 function cProgramme (id) { this.id = id; this.createMarker = function (type) { var nbTRA = this.taille(type); var n_id = this.id; GEvent.addListener(marker, 'click', function() { infoWindowOpened='myclick('+n_id+', '+type+')'; marker.openInfoWindowHtml(t_js+'<div class="infobulle" id="info' +n_id+ '">'+t_HTML[0]+'</div>', { maxWidth: 400 }); }); } }
Donc : dans ma classe cProgramme j'ai bien d�fini this.id (locale)
ensuite dans la 'fonction' (je devrais dire m�thode) this.createMarker je peux utiliser cette variable this.id ! premi�re interrogation, j'aurais cru devoir utiliser le mot cl� 'parent' pour acc�der � une variable de cProgramme dans sa fonction-m�thode, mais non, this.id, �a marche.
Bon... soit... alors je cr�e donc un �venement sur l'objet marker avec une fonction anonyme appel�e sur le onclick, cette fonction elle ne reconnait plus du tout le this.id de cProgramme. Je suis donc oblig� de la red�clarer :
var n_id = this.id;
dans createMarker, pour l'utiliser dans cette fonction... (d'ailleurs j'aurais peut etre du l'utiliser avec this.n_id non?)
Quelqu'un peut m'expliquer? quelle est la port�e de 'this'? et peut-on utiliser 'parent' en javascript et comment?
merci
Partager