Son accesadores de la propiedad. En realidad son funciones que se ejecutan cuando obtiene o establece la propiedad.
e.message; // getter
e.message = "foobar"; // setter
Al utilizar los elementos de acceso a la propiedad, estos hacen más que un simple obtener y establecer el valor de la propiedad. Pueden ejecutar el código que se estableció en los descriptores de propiedad del objeto, de modo que el acceso a la propiedad pueda tener efectos secundarios.
Ejemplo:
var o = Object.create(Object.prototype, {
foobar: {
get: function() { return "getter"; },
set: function(val) { alert("setter " + val); }
}
});
o.foobar; // "getter"
o.foobar = "raboof"; // alerts "setter raboof"
Para ver los descriptores de propiedades establecidas para una determinada propiedad, utilice Object.getOwnPropertyDescriptor
...
console.dir(Object.getOwnPropertyDescriptor(e, "message"));
Object
configurable: true
enumerable: false
get: function getter() { [native code] }
set: function setter() { [native code] }
Tenga en cuenta que estas técnicas requieren una ECMAScript 5 soportados implementación.
Tenga en cuenta que el acceso a la propiedad a través de '.' es simplemente azúcar sintáctica para la indexación a través de' [...] '. Entonces, de hecho, puede darle a un objeto un método con un espacio en su nombre; llamarlo se vería así: 'alerta (e ['obtener mensaje']());' –