Imprimez / affichez le nom d'une variable JavaScript au lieu de sa valeur

Est-il possible d'imprimer / afficher le nom d'une variable JavaScript? Par exemple:

var foo=5; var bar=6; var foobar=foo+bar; document.write(foo+ "<br>"); document.write(bar+ "<br>"); document.write(foobar + "<br>"); 

Comment imprimer les noms de la variable afin que la sortie soit:

 foo bar foobar 

Plutôt que:

 5 6 11 

Vous pouvez mettre les variables dans un objet puis les imprimer facilement de cette façon: http://jsfiddle.net/5MVde/7/

Voir le violon pour tout, c'est le JavaScript …

 var x = { foo: 5, bar: 6, foobar: function (){ var that=this; return that.foo+that.bar } }; var myDiv = document.getElementById("results"); myDiv.innerHTML='Variable Names...'; for(var variable in x) { //alert(variable); myDiv.innerHTML+='<br>'+variable; } myDiv.innerHTML+='<br><br>And their values...'; myDiv.innerHTML+='<br>'+x.foo+'<br>'+x.bar+'<br>'+x.foobar(); 

Le JavaScript pour … dans l' instruction fait une boucle dans les propriétés d'un objet .

Une autre variante (merci @elclanrs) si vous ne voulez pas que foobar soit une fonction: http://jsfiddle.net/fQ5hE/2/

 Utils = { eventRegister_globalVariable : function(variableName,handlers){ eventRegister_JsonVariable(this,variableName,handlers); }, eventRegister_jsonVariable : function(jsonObj,variableName,handlers){ if(jsonObj.eventRegisteredVariable === undefined) { jsonObj.eventRegisteredVariable={};//this Object is used for trigger event in javascript variable value changes ku } Object.defineProperty(jsonObj, variableName , { get: function() { return jsonObj.eventRegisteredVariable[variableName] }, set: function(value) { jsonObj.eventRegisteredVariable[variableName] = value; handlers(jsonObj.eventRegisteredVariable[variableName]);} }); }