说我有这段代码......
var personA = {
name: "john"
}
var personB = {
name: "john"
}
function doSomething(o) {
alert("Var is: " + o.toString()); // I need to convert 'o' to the object name
}
doSomething(personA);
doSomething(personB);
我希望警报输出为......
Var is: personA
Var is: personB
但我无法弄清楚如何将名称作为对象的字符串?
答案 0 :(得分:2)
这是不可能的。变量没有连接。
当您doSomething(personA);
获得变量personA
的值并将值传递给该函数时。
function doSomething(o) {
该值将复制到o
。从那里没有回到personA
的路径。
答案 1 :(得分:0)
基本上没有你不能
执行此操作的hacky方法就是
var personA = {
name: "John",
variable: "personA"
}
然后只使用o.variable
答案 2 :(得分:0)
var people = {
personA: {name: "john"},
personB: {name: "billy"}
};
for(var variable in people)
{
alert(variable);
}
代码来自here
答案 3 :(得分:0)
你可以按照
的方式做点什么var global = {};
Object.observe(global, function(obj) {
console.log(obj[0].name);
});
global.personA = { name: "John" };