javascript - 从对象返回访问的属性名称(键)
问题描述
是否可以在 Javascript/Typescript 中编写一个将参数名称/键作为字符串返回的函数?
function foo(arg) {...}
let user = new User();
foo(user.userId) // => returns string: "userId"
foo(user.name) // => returns string: "name"
就我的目的而言,如果函数可以返回整个表达式也可以,这意味着:
foo(user.userId) // => returns string: "user.userId"
foo(user.name) // => returns string: "user.name"
解决方案
一个选项不完全是一个函数,而是一个包装器,如果这是可以接受的 - 你可以使用Proxy
拦截属性访问并返回试图访问的密钥:
function User() {}
const userProxy = new Proxy(
new User(),
{ get: (obj, prop) => prop }
);
console.log(userProxy.userId) // => returns string: "userId"
console.log(userProxy.name) // => returns string: "name"
推荐阅读
- python-3.x - Alexa 访问令牌有效范围
- java - 使用 JSON-B / Yasson 将 JSON 反序列化为多态 POJO
- c++ - 从文件资源管理器中选择图像后将图像放在屏幕上
- google-analytics - 当数据 api 达到限制时,youtube 分析 api 返回 Daily Limit Exceeded 错误
- c++ - 如何使用矩形绘制粗线?
- c++ - 检查一个类是否有可能重载的函数调用运算符
- python - 如何在 Python 中使用 imagemagick?
- reactjs - Mern 应用程序未在 heroku 上呈现反应组件
- c++ - Clang 给我一个符号变化的警告,但是代码仍然产生正确的输出
- javascript - 我将如何遍历 pokeAPI 以获取所有后续 pokemon 数据?