Object.prototype.__defineGetter__()

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

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

構文

js
__defineGetter__(prop, func);

引数

prop

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

func

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

返値

undefined です。

解説

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

標準外かつ非推奨の方法

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

標準準拠の方法

js
// 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

関連情報