JavaScript

get(ゲッター)

 編集:2022.08.07 by T.A.

MS

オブジェクトのプロパティを関数に結びつけ、プロパティが参照された時に関数が呼び出されるようにします。

get prop( ) { ... }

計算プロパティ名の使用:

get [expression]( ) { ... }
prop 与えられた関数に結び付けられるプロパティの名前
expression ECMAScript 6 より、算出されたプロパティ名(computed property name)の式を使用して関数に結び付けることもできます。

時として、動的に計算した値を返すプロパティにアクセスを許可したほうが望ましい場合や、明示的なメソッドを呼び出すことなく内部変数に状態を反映させたい場合があります。JavaScript では、ゲッターを使ってこれを行うことが可能です。

プロパティに結び付けられたゲッターと、実際に値を持つプロパティを同時に持つことはできませんが、ゲッターとセッターを組み合わせて使用し、一種の擬似プロパティを作成することはできます。

get 構文を使用する際の注意事項:

オブジェクト初期化時における新しいオブジェクトのゲッターの定義

以下の例では、オブジェクト obj の擬似プロパティとして、log 内の最後の配列アイテムを返す latest プロパティを作成します:

const obj = {
  log: ['example','test'],
  get latest() {
    if (this.log.length === 0) return undefined;
    return this.log[this.log.length - 1]; //配列 log の最後の要素を返す。
  }
}
D=obj.latest; //="test"

latest に値を代入しようとしても、変更はされないことに注意して下さい。

delete 演算子によるゲッターの削除

ゲッターを削除したい場合は、delete を使用します:

const obj = {
  log: ['example','test'],
  get latest() {
    if (this.log.length === 0) return undefined;
    return this.log[this.log.length - 1]; //配列 log の最後の要素を返す。
  }
}
delete obj.latest;
算出されたプロパティ名の使用
const expr = 'foo';
const obj = {
  get [expr]() { return 'bar'; }
};
D=obj.foo; //="bar"

¶以下を省く


テスト