Getter は属性の値を取得するメソッドであり、Setter は属性の値を設定するメソッドです。事前定義されたコア オブジェクトまたはユーザー定義オブジェクトに対してゲッター メソッドとセッター メソッドを定義できるため、既存のオブジェクトに新しいプロパティを追加できます。
Getter メソッドまたは Setter メソッドを定義するには 2 つの方法があります:
1. オブジェクトの初期化中に
を定義します。
2. オブジェクトが定義されたら、オブジェクトの __defineGetter__ メソッドと __defineSetter__ メソッドを使用して定義を追加します
オブジェクト初期化プロセスを使用して Getter メソッドと Setter メソッドを定義するときに行う必要がある唯一のことは、getter メソッドの前に「get」を追加し、setter メソッドの前に「set」を追加することです。
もう 1 つ注意すべき点は、ゲッター メソッドにはパラメーターがなく、セッター メソッドには、設定される属性の新しい値であるパラメーターが 1 つ必要であるということです。
例:
オブジェクトを定義した後、ゲッター メソッドまたはセッター メソッドをオブジェクトに追加するには、2 つの特別なメソッド __defineGetter__ と __defineSetter__ が必要です。これら 2 つの関数では、最初のパラメーターが文字列として指定されたゲッターまたはセッターの名前であること、および 2 番目のパラメーターがゲッターまたはセッターである関数であることが必要です。
たとえば、Date オブジェクトに year 属性を追加します。
以下は、Mozilla ブラウザに innerText 属性を追加する実装です: