如何将存储在变量中的对象引用用作字符串?

时间:2012-03-15 18:15:35

标签: javascript string variables object

如果我有一个变量foo来保存对象的引用:

var foo = someObj;

如何将对象的名称用作字符串?

我试过了:

var bar = foo.valueOf()

但是这只是返回了另一个对象的引用。

我所拥有的是一种从大量对象中进行选择的算法。然后,我想使用该对象的名称从一组HTML元素中进行选择。使用以下内容也不起作用(返回null):

document.getElementById(foo)

谢谢。

2 个答案:

答案 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"