Accessor methods
__defineGetter__() は Object インスタンスのメソッドで、オブジェクトのプロパティと関数を結び付け、そのプロパティが参照されるときに呼び出されるようにします。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 1 | 12 | 1 | 3 | 18 | 1 | |
| _defineSetter_() は Object インスタンスのメソッドで、オブジェクトのプロパティと関数を結び付け、そのプロパティを設定しようとすると呼び出されるようにします。 | 1 | 12 | 1 | 3 | 18 | 1 |
| _lookupGetter_() は Object インスタンスのメソッドで、指定されたプロパティに結びつけられているゲッター関数を返します。 | 1 | 12 | 1 | 3 | 18 | 1 |
| _lookupSetter_() は Object インスタンスのメソッドで、指定されたプロパティに結びつけられているセッター関数を返します。 | 1 | 12 | 1 | 3 | 18 | 1 |
注釈 1件
実装メモ
- Firefox 48 以降、このメソッドはグローバルスコープでオブジェクトなしで呼び出すことができなくなりました。そうしないと `TypeError` がスローされます。以前はこのような場合、自動的にグローバルオブジェクトが使用されていましたが、現在はそうではありません。
注釈 1件
実装メモ
- Firefox 48 以降、このメソッドはグローバルスコープでオブジェクトなしで呼び出すことができなくなりました。そうしないと `TypeError` がスローされます。以前はこのような場合、自動的にグローバルオブジェクトが使用されていましたが、現在はそうではありません。
基本構文
JAVASCRIPT
const user = {
firstName: 'Taro',
lastName: 'Yamada',
get fullName() {
return `${this.lastName} ${this.firstName}`;
},
set fullName(value) {
[this.lastName, this.firstName] = value.split(' ');
}
};
user.fullName; // 'Taro Yamada'
user.fullName = 'Hanako Tanaka'; ライブデモ
実務での使いどころ
-
Accessor methods の活用
__defineGetter__() は Object インスタンスのメソッドで、オブジェクトのプロパティと関数を結び付け、そのプロパティが参照されるときに呼び出されるようにします。
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。