Object.prototype.__defineGetter__()

警告: この機能は非推奨となり、オブジェクト初期化子の構文または Object.defineProperty() API を使用してゲッターを定義する方法で置き換えられました。この機能は広く実装されていますが、古い使い方であるために ECMAScript 仕様書で非推奨となっています。よりよい代替策が存在するので、このメソッドを使用しないでください。

__defineGetter__ メソッドは、オブジェクトのプロパティと関数を結び付け、そのプロパティが参照されるときに呼び出されるようにします。

構文

__defineGetter__(prop, func)

引数

prop

関数と結びつけるプロパティの名前を表す文字列です。

func

プロパティの値を参照するときに呼び出される関数です。

返値

undefined です。

解説

__defineGetter__ を使用することで、既存のオブジェクトにゲッターを定義することができます。

標準外かつ非推奨の方法

var o = {};
o.__defineGetter__('gimmeFive', function() { return 5; });
console.log(o.gimmeFive); // 5

標準準拠の方法

// get 演算子を使用
var o = { get gimmeFive() { return 5; } };
console.log(o.gimmeFive); // 5

// Object.defineProperty を使用
var o = {};
Object.defineProperty(o, 'gimmeFive', {
  get: function() {
    return 5;
  }
});
console.log(o.gimmeFive); // 5

仕様書

Specification
ECMAScript Language Specification
# sec-object.prototype.__defineGetter__

ブラウザーの互換性

BCD tables only load in the browser

関連情報