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

新手上路,请多包涵

例如我有这样一个对象:

 var a = {
    'light': 'good',
    'dark' : {
        'black': 'bad',
        'gray' : 'not so bad'
    }
}

和这样的代码:

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

如何获取函数体中对象的名称。所以我的意思是我应该知道 obj 的名字是“dark”。

我试过用萤火虫检查对象,但它只显示对象的属性。它没有显示一些内部方法或属性,我将能够知道

谢谢你。

原文由 Larry Cinnabar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 282
2 个回答

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

您基本上是在尝试检索在将值传递给函数之前保存该值的变量名称。那是不可能的。

原文由 deceze 发布,翻译遵循 CC BY-SA 2.5 许可协议

“对象的名称”不是对象的固有属性。 “名称”是给定上下文中的名称。当您将一个对象传递给一个函数时,您只需传递该对象,而不是它被命名的上下文(在您的示例中为“暗”)。

无论你想完成什么,你都在错误的轨道上。

原文由 Frunsi 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题