La respuesta aceptada es genial. Es mejor si está dispuesto a utilizar la sintaxis de función normal en lugar de la "sintaxis de función de flecha" compacta.
Pero tal vez te gusten mucho las funciones de flecha; tal vez use la función de flecha por otra razón que una sintaxis de función normal no puede reemplazar ; puede que necesite una solución diferente.
Por ejemplo, noto que OP usa this, es posible que desee enlazar thisléxicamente; también conocido como "no vinculante de esto" ), y las funciones de flecha son buenas para ese vínculo léxico.
Todavía puede usar una función de flecha con un captador a través de la Object.definePropertytécnica.
{
...
Object.defineProperty(your_obj, 'status', {
get : () => this.xhr.status
});
...
}
Ver menciones de object initializationtécnica (alias get NAME() {...}) vs definePropertytécnica (alias get : ()=>{}) . Hay al menos una diferencia significativa, el uso definePropertyrequiere que las variables ya existan:
Definición de un captador en objetos existentes
es decir, con Object.definePropertydebe asegurarse de que your_obj(en mi ejemplo) exista y se guarde en una variable (mientras que con a object-initializationpodría devolver un objeto-literal en la inicialización de su objeto :) {..., get(){ }, ... }. Más información sobre Object.definePropertyespecíficamente, aquí
Object.defineProperty(...)parece tener un soporte de navegador comparable a la get NAME(){...}sintaxis; navegadores modernos, IE 9.
(method, url, something) => this.xhr.open(method. url, something).