我正在寻找一种方法来获取对象属性的名称,如下所示:
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/