如果我有一个变量foo来保存对象的引用:
var foo = someObj;
如何将对象的名称用作字符串?
我试过了:
var bar = foo.valueOf()
但是这只是返回了另一个对象的引用。
我所拥有的是一种从大量对象中进行选择的算法。然后,我想使用该对象的名称从一组HTML元素中进行选择。使用以下内容也不起作用(返回null):
document.getElementById(foo)
谢谢。
答案 0 :(得分:4)
没有可靠的方法来获取对象的名称。
示例:
var obj = {};
var obj1 = obj;
var obj2 = obj;
magically_get_and_print_name(obj); // What to print? "obj"? "obj1"? "obj2"?
在某些情况下获取名称的方法:
funcreference.name
(非标准,但受到良好支持)instance.constructor.name
答案 1 :(得分:0)
假设你有:
var someObj = {
a: 15,
b: 36
};
然后你做了:
var foo = someObj;
无法从"someObj"
获取字符串"foo"
(或foo
)。
您可以做的是在创建对象时为其添加名称。像这样:
var someObj = {
a: 15,
b: 36,
objName: 'someObj'
};
var foo = someObj;
console.log(foo.objName); // "someObj"