打印/显示JavaScript变量的名称而不是它的值

时间:2014-03-21 02:09:00

标签: javascript string variables type-conversion document.write

是否可以打印/显示JavaScript变量的名称?例如:

var foo=5;
var bar=6;
var foobar=foo+bar;

document.write(foo+ "<br>");
document.write(bar+ "<br>");
document.write(foobar + "<br>");

我们如何打印变量的名称,以便输出为:

foo 
bar 
foobar

而不是:

5
6
11

3 个答案:

答案 0 :(得分:5)

您可以将变量放在 object 中,然后以这种方式轻松打印: http://jsfiddle.net/5MVde/7/

查看所有内容的小提琴,这是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();

JavaScript for...in 语句循环遍历 object 的属性。

另一种变体(感谢@elclanrs),如果您不希望foobar成为一个功能: http://jsfiddle.net/fQ5hE/2/

答案 1 :(得分: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]);}
                    });
            }

答案 2 :(得分:0)

另一种可能的解决方案是“Object.keys(this)”....这将为您提供数组中的所有变量名称。