ejemplos - __Getattr__ de Python en Javascript
javascript html (2)
No. El más cercano es __defineGetter__
disponible en Firefox, que define una función de devolución de llamada para invocar cada vez que se lee la propiedad especificada:
navigator.__defineGetter__(''userAgent'', function(){
return ''foo'' // customized user agent
});
navigator.userAgent; // ''foo''
Difiere de __getattr__
en que se llama para una propiedad conocida, en lugar de una búsqueda genérica para una propiedad desconocida.
Esta pregunta ya tiene una respuesta aquí:
- Getter JavaScript para todas las propiedades 7 respuestas
¿Hay una manera de simular el método __getattr__
de Python en Javascript?
Quiero interceptar ''gets'' y ''sets'' de las propiedades del objeto Javascript.
En Python puedo escribir lo siguiente:
class A:
def __getattr__(self, key):
return key
a = A()
print( a.b ) # Output: b
¿Qué pasa con Javascript?
No en el estándar ECMAScript-262 3ª ed.
La próxima 5ª edición (actualmente borrador), por otro lado, introduce los accesores en los inicializadores de objetos. Por ejemplo:
var o = {
a:7,
get b() { return this.a + 1; },
set c(x) { this.a = x / 2; }
};
Sintaxis similar ya es compatible con Javascript 1.8.1 (por supuesto, como una extensión no estándar).
Tenga en cuenta que no hay implementaciones ES5 "completadas" en este momento (aunque algunas están en progreso )