data attribute __getattr__ javascript

javascript - attribute - python__getattr__



¿Hay un equivalente en javascript del método__getattr__ de python? (2)

Ahora es posible si su navegador tiene soporte para la función Proxy ES6. Puede verificar esto en la tabla de compatibilidad de ECMAScript 6 .

Si tiene el soporte de proxy, lo usaría de la siguiente manera:

let handler = { get(target,name) { return `Value for attribute ${name}` } } let x = new Proxy({},handler); console.log(x.lskdjoau); // produces message: "Value of attribute ''lskdjoau''"

Funciona en chrome, firefox, y node.js. Desventajas: no funciona en IE - freakin IE. Pronto.

Esta pregunta ya tiene una respuesta aquí:

En Python, puede definir un objeto que tenga el __getattr__(self,key) para manejar todos los atributos desconocidos para poder resolverlos de manera programática, pero en javascript solo puede definir captadores y definidores para atributos predefinidos. ¿Hay una forma genérica de hacer lo primero también en javascript?

El código de muestra sería como:

function X() {}; X.prototype={ __getattr__:function(attrname) { return "Value for attribute ''"+attrname+"''"; } } x=new X() alert(x.lskdjoau); // produces message: "Value of attribute ''lskdjoau''"

El punto clave es obtener el valor del atributo programáticamente según el nombre del atributo. El atributo de configuración previa no ayuda porque durante el inicio no hay información sobre qué atributos se pueden solicitar.