javascript - 获取对象属性名自引用

标签 javascript reflection

我正在寻找一种方法来获取对象属性的名称,如下所示:

let o = {
 first: 1,
 second: 2
};

function q(prop) {
 // return name of prop
}

console.log(q(o.first));
// should return "first"

我什至不确定这是否可能,但我只是问问。

这方面的主要用例是通过请求属性的动态规范给出的,同时保持使用智能感知的优势,这对于大型项目和重构目的来说非常重要。

最佳答案

I am not even sure this is possible...

好直觉!它不是。当你这样做时:

q(o.first);

o.first 属性的 (1) 被传递到q。关于对象或其属性的任何信息都不会传递给 q,只有值 1

如果您知道该值来自哪个对象,并且该对象只有一个具有匹配值的属性,您就可以弄清楚。但当然,在绝大多数情况下,其中之一或两者都不会成立。在一般情况下,不,没有什么可以告诉您它来自 o.first

关于javascript - 获取对象属性名自引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59020644/

相关文章:

c# - 如何从基类中获取对派生类实例的引用

java - 如何从 jar 加载方法而不加载类?

java - 如何动态创建一个使用反射扩展另一个动态类的类?

javascript - 如何在js中使pong球加速

javascript - CanvasJS:xValueFormatString 根本不执行任何操作

javascript - 如何从带有子项的嵌套 JSON 中的子 ID 获取所有父 ID

c# - 使用反射获取类型

php - 使用 js 在 php 中动态显示/隐藏 div 控件?

javascript - 在 jQuery 插件中实现 $(this)

c# - 如何在 .NET 中动态调用类的方法?