受け入れられた答えは素晴らしいです。コンパクトな「矢印関数構文」ではなく、通常の関数構文を使用する場合に最適です。
しかし、多分あなたは本当にアロー関数が好きです。通常の関数構文では置き換えられない別の理由でアロー関数を使用している可能性があります。別のソリューションが必要になる場合があります。
たとえば、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)
。