Object.prototype.__defineGetter__()

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

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

構文

obj.__defineGetter__(prop, func)

引数

prop
関数と結びつけるプロパティの名前を表す文字列です。
func
プロパティの値を参照するときに呼び出される関数です。

返値

undefined.

説明

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

標準外かつ非推奨の方法

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

標準準拠の方法

// Using the get operator
var o = { get gimmeFive() { return 5; } };
console.log(o.gimmeFive); // 5

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

仕様書

仕様書
ECMAScript (ECMA-262)
Object.prototype.__defineGetter__() の定義

ブラウザーの互換性

BCD tables only load in the browser

関連情報