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]);} }); }