javascript - 获取对象属性名称自引用
问题描述
我正在寻找一种方法来获取对象属性的名称,如下所示:
let o = {
first: 1,
second: 2
};
function q(prop) {
// return name of prop
}
console.log(q(o.first));
// should return "first"
我什至不确定这是否可能,但我只是在问。
主要用例是由请求属性的动态规范给出的,同时保持使用智能感知的优势,这对于大型项目和重构目的可能非常重要。
解决方案
我什至不确定这是否可能......
好直觉!它不是。当你这样做时:
q(o.first);
属性 ( )的值被传递到. 没有任何关于对象或其属性的内容被传递给,只有值。o.first
1
q
q
1
如果您知道该值来自哪个对象,并且该对象只有一个具有匹配值的属性,您就可以弄清楚。但当然,在绝大多数情况下,其中一个或两个都不会是真的。在一般情况下,不,没有什么可以告诉您它来自o.first
.
推荐阅读
- kotlin - kotlin 属性扩展与本地类扩展,哪个更好?
- python - 得到错误 TypeError: execute() 没有关键字参数
- c - 带有字母的Scanf %i 给出负数?
- angular - 如何将值插入角度参考?
- python - 验证损失和验证准确度在训练期间不会改变
- linux - 使用“stty”在 Raspberry Pi 中读取串行数据 1 秒
- django - 仅在部署期间收到 401 HTTP 错误
- python - 将灰度值视为蒙版的问题
- oracle - oracle正则表达式检查字符串是否包含字母和数字并且不包含特殊字符
- c - 在 C 中使用结构和指针进行奇怪的整数转换