受け入れられた答えは素晴らしいです。コンパクトな「矢印関数構文」ではなく、通常の関数構文を使用する場合に最適です。
しかし、多分あなたは本当にアロー関数が好きです。通常の関数構文では置き換えられない別の理由でアロー関数を使用している可能性があります。別のソリューションが必要になる場合があります。
たとえば、OPがを使用thisしていることに気づきました。字句的にバインドしthisたい場合があります。別名「これの非バインディング」)、および矢印関数はその字句バインディングに適しています。
このObject.defineProperty手法を使用しても、ゲッターでアロー関数を使用できます。
{
...
Object.defineProperty(your_obj, 'status', {
get : () => this.xhr.status
});
...
}
参照はの言及object initialization法(通称get NAME() {...})対defineProperty法(通称get : ()=>{})。少なくとも1つの重要な違いdefinePropertyがあります。使用するには、変数がすでに存在している必要があります。
既存のオブジェクトのゲッターを定義する
つまり、(私の例では)存在し、変数に保存されているObject.definePropertyことを確認する必要your_objがあります(object-initializationオブジェクトの初期化でオブジェクトリテラルを返すことができます:) {..., get(){ }, ... }。詳細はObject.defineProperty具体的には、ここに
Object.defineProperty(...)get NAME(){...}構文に匹敵するブラウザーサポートがあるようです。最新のブラウザ、IE 9。
(method, url, something) => this.xhr.open(method. url, something)。