如何获得变量关键字而不是变量值
How to get variable keyword instead of variable value
我创建了一个函数来打印对象或数组,这打印属性名称和值ok,但我不知道如何在输出的第一行打印"testobject"而不是"object"。
部分功能
function expandNode(obj) {
for (var node in obj) {
text += node + " => " + obj[node] + "<br>"; //keyword => value
}
return (text);
}
为例
var testobject={};
testobject["car"]="toyota";
testobject["instrument"]="piano";
testobject["computer"]="macintosh";
document.write( printO(testobject) );
输出为
object
(
car => toyota
instrument => piano
computer => macintosh
)
不可能。您唯一能做的就是传递变量名:
printO('someVar', someVar);
不用说,这是非常丑陋的,所以最好不要这样做。
因为另一个答案建议只传递名称并使用eval
访问值:这将适用于全局对象-但在这种情况下,更好的方法是不使用eval,而是对全局对象(window
或this
)使用[]
操作符。由于不可能从局部作用域访问值,因此没有好方法使函数只接受变量名。
不幸的是,这在Javascript中是不可能的。最好的方法是将变量名作为字符串传入,然后使用
eval()
访问实际的变量:
function printO(obj_str) {
alert("The variable name is " + obj_str);
obj = eval(obj_str);
}
参见这个问题:如何将变量名称转换为字符串在JavaScript?
编辑:事实上,上述解决方案是行不通的;
相关文章:
- JavaScript:单击时相对于父级增加变量值
- 如何通过ajax增加/减少PHP变量值并重新加载函数
- 如何从特定页面中提取php变量值
- JavaScript模数未正确递增变量值
- 替换另一个变量对象中的变量值
- mandrill合并标记不接受变量值
- 将变量值从一个javascript传递到另一个javascript
- 如何将变量值附加到另一个变量
- html类名中的数字形式的Javascript变量值
- 如何在C#中获取Javascript变量值
- 如何将C#变量值传递给javascript以使用amcharts
- 正在从addEventListener中获取变量值
- 使用变量值作为'名称标识符'javascript/html
- 为什么在以下代码段中无法访问中的变量值
- 我们可以在初始化variable Angular JS时将变量值声明为未定义吗
- 在HTML/Javascript文件中获取App Inventor 2变量值
- 将变量值传递给另一个函数
- jQuery UI对话框窗体-缺少变量值
- 如何访问具有变量值的对象
- 如何获得变量关键字而不是变量值