La réponse acceptée est excellente. C'est le meilleur si vous êtes prêt à utiliser une syntaxe de fonction normale au lieu d' une «syntaxe de fonction de flèche» compacte.
Mais peut-être que vous aimez vraiment les fonctions fléchées; peut-être que vous utilisez la fonction de flèche pour une autre raison qu'une syntaxe de fonction normale ne peut pas remplacer ; vous aurez peut-être besoin d'une solution différente.
Par exemple, je remarque que OP utilise this, vous voudrez peut-être lier thislexicalement; aka "non contraignant de ceci" ), et les fonctions fléchées sont bonnes pour cette liaison lexicale.
Vous pouvez toujours utiliser une fonction flèche avec un getter via la Object.definePropertytechnique.
{
...
Object.defineProperty(your_obj, 'status', {
get : () => this.xhr.status
});
...
}
Voir les mentions de la object initializationtechnique (aka get NAME() {...}) vs la definePropertytechnique (aka get : ()=>{}) . Il y a au moins une différence significative, l'utilisation definePropertyrequiert que les variables existent déjà:
Définition d'un getter sur des objets existants
c'est-à-dire avec Object.definePropertyvous devez vous assurer que your_obj(dans mon exemple) existe et est sauvegardé dans une variable (alors qu'avec a object-initializationvous pouvez retourner un objet-littéral dans votre initialisation d'objet:) {..., get(){ }, ... }. Plus d'informations sur Object.definePropertyspécifiquement, ici
Object.defineProperty(...)semble avoir un support de navigateur comparable à la get NAME(){...}syntaxe; navigateurs modernes, IE 9.
(method, url, something) => this.xhr.open(method. url, something).