get

Did you know that you can read content offline by using one of these tools? If you would like to read offline MDN content in another format, let us know by commenting on Bug 665750.

Dash App

この文書は翻訳中です。他国語のままの部分などがあるのはその為です。
是非お気軽に MDN に登録して翻訳に参加し、私たちの手助けをして下さい!

概要

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

構文

{get prop() { . . . } }

引数

prop
与えられた関数に結び付けられるプロパティの名前

説明

時として、動的に計算した値を返すプロパティにアクセスを許可したほうが望ましい場合や、明示的なメソッドを呼び出すことなく内部変数の状態を反映させたいときがあります。Javascriptでは、getterを使ってこれを行うことが可能です。プロパティのタイプを作るのと同時にgetterとsetterを使うことは可能ですが、getterにプロパティ自身とそれが持つ値を同時に返させることはできません。

JavaScript 1.8.5 における注記

JavaScript 1.8.5 以降の get 演算子:

  • 数値か文字列かを識別するための識別子を持つことができます。
  • パラメータの数は0でなければなりません (see Incompatible ES5 change: literal getter and setter functions must now have exactly zero or one arguments for more information)。
  • 1つのオブジェクトリテラル中に、同じプロパティに対する別の get またはデータの割り当てが現れてはいけません ({ get x() { }, get x() { } } や { x: ..., get x() { } } は禁止されています)。

getterは delete 演算子で削除することができます。

get 演算子によるgetterの定義

以下の例では、オブジェクト o の擬似的なプロパティとして、 o.log 内の最新のエントリを返す latest プロパティを作成します:

var o = {
  get latest () {
    if (this.log.length > 0) {
      return this.log[this.log.length - 1];
    }
    else {
      return null;
    }
  },
  log: []
}

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

delete 演算子によるgetterの削除

delete o.latest;

ブラウザ実装状況

Based on Robert Nyman's page

サポートされていない場合 (特にIE6-8において) 、スクリプトはシンタックスエラーを引き起こします。

機能 Firefox (Gecko) Chrome Internet Explorer Opera Safari
基本サポート 2.0 (1.8.1) 1 9 9.5 3
機能 Firefox Mobile (Gecko) Android IE Mobile Opera Mobile Safari Mobile
基本サポート ? ? ? ? ?

関連情報

タグ (4)