Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Object::Object.prototype.__defineGetter__インスタンスメソッドの使い方

Object.prototype.__defineGetter__()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Object.prototype.defineGetter()メソッドは、指定されたオブジェクトの既存のプロパティ、または新しいプロパティにゲッター関数を割り当てることを実行するメソッドです。このゲッター関数はアクセサープロパティとも呼ばれ、特定のプロパティが参照(読み取り)されるたびに実行されます。ゲッター関数が値を返すと、その値がプロパティの値として扱われるため、プロパティの値を動的に計算したり、オブジェクトの内部データへの直接的なアクセスを制御したりすることが可能になります。

このメソッドは、引数としてゲッターを設定したいプロパティの名前(文字列)と、ゲッターとして機能する関数を受け取ります。例えば、オブジェクトにpropertyNameというゲッターを定義した場合、myObject.propertyNameのようにアクセスすると、定義されたゲッター関数が実行され、その戻り値が取得されます。

ただし、Object.prototype.__defineGetter__()メソッドは非標準であり、現在では非推奨(deprecated)とされています。JavaScriptのECMAScript 5以降では、プロパティのより詳細な制御を可能にする標準的なObject.defineProperty()メソッドが導入されており、こちらの使用が強く推奨されています。システムエンジニアを目指す初心者の方は、新しいコードを書く際には、この__defineGetter__()ではなく、標準であるObject.defineProperty()メソッドの利用をご検討ください。

公式リファレンス: Object.prototype.__defineGetter__()

構文(syntax)

1let obj = {};
2obj.__defineGetter__('propertyName', function() {
3  // プロパティがアクセスされたときに実行されるコード
4  return 'value';
5});

引数(parameters)

prop, func

  • prop: string | symbol: getterを定義するプロパティの名前
  • func: function: プロパティの値を取得する際に実行される関数

戻り値(return)

undefined

このメソッドは、オブジェクトにゲッター関数を定義しますが、戻り値はありません。

関連コンテンツ

関連プログラミング言語