OVH Cloud OVH Cloud

javascript introspection d'un objet

2 réponses
Avatar
unbewusst.sein
disons que j'ai un objet "o", qui a des pptés et des méthodes, je
voudrais les listes pour deboguage, c'est pas très difficle d'avoir leur
nom :

for(var i in o) alert(i+' = '+o[i]+'\n')

mais dans le cas de functions je voudrais retourner la valeur de la
function (en supposant, pour démarrer, que la funtion est SANS
argument), donc j'ai essayé :

if(typeof i == 'function') alert(i+' = '+o[i]()+'\n')

mais ça lève une erreur, en tk pour une function de [native code]

est-ce que ça peut marcher pour une function NON native ?

si la function a des arguments, comment puis-je les connaître ?
--
Artaban de Médée

2 réponses

Avatar
unbewusst.sein
Une Bévue wrote:

if(typeof i == 'function') alert(i+' = '+o[i]()+'n')

mais ça lève une erreur, en tk pour une function de [native code]


j'ai amélioré mon code pour tenir compte des functions natives :

var nc=/.*native code.*/test(o[i]);

if(!nc && typeof i == 'function') alert('o.'+i+'() '+eval(o+'['+i+']()')+'n')

donc le script ne bloque + sur les functions natives mais j'ai un erreur
:
missing] after element list
[object Object][domain]()

???
--
Artaban de Médée

Avatar
unbewusst.sein
Une Bévue wrote:

j'ai amélioré mon code pour tenir compte des functions natives :

var nc=/.*native code.*/test(o[i]);

if(!nc && typeof i == 'function') alert('o.'+i+'() > '+eval(o+'['+i+']()')+'n')

donc le script ne bloque + sur les functions natives mais j'ai un erreur
:
missing] after element list
[object Object][domain]()


même erreur avec l'écriture :

alert(...+eval(loc.'.'+i+'()')...)

???
--
Artaban de Médée