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