【发布时间】:2021-01-10 22:40:11
【问题描述】:
我正在尝试创建一个对象,该对象返回所访问的任何属性的属性名称。这可以在javascript / nodejs中干净地完成吗?这就是我想要完成的:
const mirror = {/*...*/};
console.log(mirror[1]);
// => 1
console.log(mirror.123);
// => '123'
console.log(mirror.randomPropertyHere);
// => 'randomPropertyHere'
我可以覆盖特定属性的 getter,但我不知道如何通用。还有如何区分数字和字符串?
我的(不工作)尝试
const mirror = {
get[1] () {
console.log('number');
return 1;
},
get['1'] () {
console.log('string');
return '1';
}
};
console.log(mirror[1]);
console.log(mirror['1']);
非常感谢您的宝贵时间和帮助!
【问题讨论】:
-
既然你已经知道你要得到的财产,为什么你还需要知道呢?似乎是多余的。更不用说你不能拥有一个数字的 Object 属性。该数字将转换为字符串。由于属性相同,因此只有最后一种方法有效。
标签: javascript node.js object properties getter