This translation is incomplete. Please help translate this article from English.
オブジェクトのプロパティを、プロパティが参照された時に関数が呼び出されるように結びつけます。
構文
{get prop() { ... } }
{get [expression]() { ... } }
引数
prop- 与えられた関数に結び付けられるプロパティの名前
説明
時として、動的に計算した値を返すプロパティにアクセスを許可したほうが望ましい場合や、明示的なメソッドを呼び出すことなく内部変数の状態を反映させたいときがあります。Javascriptでは、getterを使ってこれを行うことが可能です。プロパティのタイプを作るのと同時にgetterとsetterを使うことは可能ですが、getterにプロパティ自身とそれが持つ値を同時に返させることはできません。
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 |
|---|---|---|---|---|---|
| 基本サポート | ? | ? | ? | ? | ? |
関連情報
deleteset__defineGetter____defineSetter__- Defining Getters and Setters in JavaScript Guide