JavaScriptにおけるOOPのアクセサープロパティ
オブジェクトのプロパティには2つのタイプがあります。
最初のタイプはデータプロパティ(data properties)です。 これらをどのように扱うかはすでに知っています。これまで使用してきたすべてのプロパティは、データプロパティでした。
2番目のタイプのプロパティはまだ検討していません。 これはアクセサープロパティ(accessor properties)です。 本質的には、値を設定および取得するために使用される関数ですが、外部コードからは通常のオブジェクトプロパティのように見えます。
アクセサープロパティは、メソッド宣言時に記述されるキーワード get と set を使用して作成されます:
class User {
get name() {
}
set name(name) {
}
}
このような宣言の結果、私たちのクラスは name プロパティを持つことになります。このプロパティを読み取ろうとすると、get を通じて宣言されたメソッドが呼び出されます:
let name = user.name;
書き込みを試みると、set を通じて宣言されたメソッドが呼び出されます:
user.name = 'john';
次のクラスが与えられています:
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
このクラスのオブジェクトを作成し、プロパティ name へのデータの書き込みと読み取りを試みてください。