1. ホーム
  2. ecmascript-6

[解決済み] ES6 ゲッター/セッターとアロー関数

2022-06-18 13:08:44

質問

私はbabel6を使用しており、私のペットプロジェクトでは、私が使用できるメソッドのために、XMLHttpRequestのラッパーを作成しています。

open = (method, url, something) => {
  return this.xhr.open(method, url, something);
}

が、プロパティの矢印機能は動作しません。

というのがありますが、これは動作します。

get status() { return this.xhr.status; }

を使用することはできませんが

get status = () => this.xhr.status;

これは意図的なものなのでしょうか?

どのように解決するのですか?

ES2015の文法によると オブジェクトリテラル上のプロパティである は 4 つのうちの 1 つにしかなりえません。

PropertyDefinition :

  • 識別子の参照
  • プロパティ名 : AssignmentExpression(代入式
  • メソッド定義

これらのタイプのうち、唯一、先頭の get メソッド定義 :

メソッド定義 :

  • プロパティ名 ( StrictFormalParameters ) { 関数本体 }
  • ジェネレータメソッド
  • get プロパティ名 ( ) { 関数本体 }
  • set プロパティ名 ( PropertySetParameterList ) { 関数本体 }

ご覧のように get の形式でなければならないという非常に限定された文法に従っています。

get NAME () { BODY }

この文法では get NAME = ... .