如何在javascript中获取对象的名称?

Lar*_*bar 7 javascript object

例如,我有这样一个对象:

var a = {
    'light': 'good',
    'dark' : {
        'black': 'bad',
        'gray' : 'not so bad'
    }
}
Run Code Online (Sandbox Code Playgroud)

和这样的代码:

var test = function(obj) {
    // do smth with object
    // I need to get obj's name ('dark' in my way)
}
test(a.dark);
Run Code Online (Sandbox Code Playgroud)

如何在函数体中获取对象的名称.所以我的意思是我应该知道obj的名字是"黑暗的".

我已经尝试用firebug检查对象,但它只显示对象的属性.它没有显示一些内部方法或属性,我将能够知道

谢谢.

dec*_*eze 14

你不能.你只是将对象传递给{ black : 'bad', gray : 'not so bad' }test.这个对象本质上没有名称"dark",它只是一个碰巧作为dark对象属性存在的对象a.将此信息传递给函数时,此信息将无法挽回地丢失.

你基本上试图在值传递给函数之前检索保存值的变量名.那是不可能的.

  • +1对象和变量是两个完全不同的野兽,每个对象由0到无穷大变量引用,并且不会/不应该知道任何有关它们的任何内容. (3认同)