Digamos que tengo el siguiente objeto en mi código JS:
var myData = { "someWeirdPrefix_name": "John Doe", "someWeirdPrefix_age": 24, ... } ¿Hay alguna manera de anular el operador getter predeterminado ( . )? Como en, si escribo myData.name , me gustaría obtener "John Doe" (gracias a la anulación). Básicamente, quiero anular el método para poder tomar la clave dada, agregar el prefijo extraño a la clave y luego obtener el valor. Sé que el enfoque fácil sería simplemente limpiar mis datos reales y eliminar el prefijo, pero eso no es aceptable en mi caso de uso. ¿Es esto realmente posible para cada propiedad (no solo el name y la age )?
Le sugiero que cree un proxy sobre el objeto data , y en el controlador de get , puede verificar si hay una key en myData , incluida la clave de notación de puntos, en caso afirmativo, obtenga el valor de esa clave.
const myData = { "someWeirdPrefix_name": "John Doe", "someWeirdPrefix_age": 24, } const handler = { get(target, prop, receiver) { return target[Object.keys(target).find(key => key.includes(prop))] } } const proxy = new Proxy(myData, handler); console.log(proxy.name)