Javascript 如何覆盖对象获取回退

Javascript 如何覆盖对象获取回退,javascript,node.js,object,properties,getter,Javascript,Node.js,Object,Properties,Getter,我正在尝试创建一个对象,该对象返回被访问的任何属性的属性名。在javascript/nodejs中可以干净地做到这一点吗?这就是我想要实现的目标: constmirror={/*…*/}; console.log(镜像[1]); // => 1 控制台日志(镜像123); // => '123' console.log(mirror.randomPropertyHere); //=>“randomPropertyHere” 我可以覆盖特定属性的getter,但我不知道如何一般地覆盖它。还有,如

我正在尝试创建一个对象,该对象返回被访问的任何属性的属性名。在javascript/nodejs中可以干净地做到这一点吗?这就是我想要实现的目标:

constmirror={/*…*/};
console.log(镜像[1]);
// => 1
控制台日志(镜像123);
// => '123'
console.log(mirror.randomPropertyHere);
//=>“randomPropertyHere”
我可以覆盖特定属性的getter,但我不知道如何一般地覆盖它。还有,如何区分数字和字符串

我(不工作)的尝试

const镜像={
获取[1](){
console.log('number');
返回1;
},
获取['1'](){
log('string');
返回“1”;
}
};
console.log(镜像[1]);
log(镜像['1']);
非常感谢您的时间和帮助

使用代理

const mirror=新代理({}{
get(u,prop){return prop;}
});
console.log(镜像[1]);
// => 1
log(镜像['123']);
// => '123'
console.log(mirror.randomPropertyHere);
//=>'randomPropertyHere'
带有代理

const mirror=新代理({}{
get(u,prop){return prop;}
});
console.log(镜像[1]);
// => 1
log(镜像['123']);
// => '123'
console.log(mirror.randomPropertyHere);

//=>“randomPropertyHere”
啊,这是一个好的开始,谢谢!我可以使用数组的代理返回数字吗?我需要一个数字代理,另一个字符串代理。否。
arr[1]=5
arr['1']=5
之间没有区别,因为对象属性必须是字符串或符号。代码中的数字将自动转换为字符串属性。啊,这是一个好的开始,谢谢!我可以使用数组的代理返回数字吗?我需要一个数字代理,另一个字符串代理。否。
arr[1]=5
arr['1']=5
之间没有区别,因为对象属性必须是字符串或符号。代码中的数字将自动转换为字符串属性。既然您已经知道要获取的属性,为什么还要再次知道?这似乎是多余的。更不用说你不能拥有一个数字的对象属性。那个数字将转换成一个字符串。。既然属性是相同的,只有最后一种方法才有效。既然你已经知道你得到的属性,为什么还要再知道一次?这似乎是多余的。更不用说你不能拥有一个数字的对象属性。那个数字将转换成一个字符串。。由于属性相同,只有最后一种方法可以工作。