Hello,
quelle est la méthode pour récupérer le "nom" d'un object google.maps ?
j'ai essayé .caller, .name, .constructor.name sans success, je précise que ce n'est pas du typeof...
par exemple j'utilise une function getInfos comme ça :

function getInfos(Object element){
    // comment connaitre le "type" ou "name" de l'object element ?
    // element.name ne fonctionne pas -> me renvoie undefined
    // element.caller non plus -> me renvoie undefined
}

je pourrais faire autrement et passer par des options, ou encore comparer ces mêmes objects, ce n'est pas vital mais j'aimerais savoir.... ;)

concrètement, ma situation :
je monte une carte 'google map' interactive sur laquelle on peut créer des markers et des lignes (entre ces-dits markers).
je souhaite pouvoir cliquer sur ces différents éléments (marker ou ligne) et utliser la même function de traitement.
ce que j'ai :
quand je clique sur un marker je récupère un élément de type '.De'
et sur une ligne un élément de type '
.Me'
donc, comment savoir si c un '.De' ou un '.Me' ?

merci

3 réponses


saibe
Auteur
Réponse acceptée

g trouvé un moyen détourné d'obtenir mon "name" : c de le surcharger :(
exemple avec les lignes de 'google maps' :

google.maps.Polyline.prototype.name = 'polyline';

de même pour les markers :

google.maps.Marker.prototype.name = 'marker';

mais c po terrible, je ne veux pas surcharger les class à chaque fois, je suis certain qu'il existe une méthode comme dans php : get_class....

Bonjour.
Pourquoi tu n'utilises tout simplement pas le debugger ?
Comme ça tu peux voir comment est composé l'objet que tu récupères :

function getInfos(Object element) {
    var elem = element;
    debugger
}

Quand la fonction sera utilisé, tu verras la composition de l'objet dans la console de l'inspecteur de ton navigateur.

saibe
Auteur

;) merci @Lartak pour ta réponse.
mais si je connais le nom des objects, c que je l'utilise déjà ;)....
non, le soucis, c que je n'arrive pas a le récupérer...
un exemple :

var Obj1 = function(){
}

var Obj2 = function(){
}

function getInfos(el){
    console.log(el); // va te sortir ton obj de type Obj1
    console.log(el.constructor.name) // sort Obj1 mais pas sur les object 'google.maps' :(
}

myObj = new Obj1();

getInfos(myObj);