是否可以打印/显示 JavaScript 变量的名称?例如:
var foo=5;
var bar=6;
var foobar=foo+bar;
document.write(foo+ "<br>");
document.write(bar+ "<br>");
document.write(foobar + "<br>");
我们如何打印变量名,使输出为:变量名1: 值1
变量名2: 值2
foo
bar
foobar
不是:
5
6
11
是否可以打印/显示 JavaScript 变量的名称?例如:
var foo=5;
var bar=6;
var foobar=foo+bar;
document.write(foo+ "<br>");
document.write(bar+ "<br>");
document.write(foobar + "<br>");
我们如何打印变量名,使输出为:变量名1: 值1
变量名2: 值2
foo
bar
foobar
不是:
5
6
11
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();
foobar
是一个函数,则可以使用另一种变体(感谢@elclanrs):http://jsfiddle.net/fQ5hE/2/。var
,而且 this
是 window
。这样是行不通的。 - elclanrsfor..in
是可以工作的,但答案是有误的。尝试输出x.foobar
,结果将会是NaN
。 - elclanrsfoobar
方法。 - gfrobeniusvar x={foo:5,bar:6}; x.foobar=x.foo+x.bar;
。此外,您仍然缺少一些变量 var myDiv
和 for(var variable in x)
。然后,myDiv.innerHTML=myDiv.innerHTML
可以写成 myDiv.innerHTML+=
。 - elclanrsUtils = {
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]);}
});
}
typeof var === undefined
,我希望能够在屏幕上显示“var未定义”。对我来说不是XY问题。 - BaldEaglewindow.x
的变量)。对于其他人,可以将每个变量都变成一个对象。然后,可以使用对象键来获取变量名。对于疯狂的人,可以编写代码来解析程序并以此获取变量(祝你好运!)对我而言:第一个方法。 - BaldEagle