private フィールドとアクセサ
実践JavaScript / 全 5 枚
実践JavaScript - private フィールドとアクセサ
外から触られたくない値に # を付ける
表示回数のように、勝手に書き換えられると困る値があります。名前の先頭に # を付けたフィールドは、その class の中からしか読み書きできません。外から見せたいときは get を1つ用意して、読む窓口だけを開けます。
読めるけれど書けない、という状態がこれで作れます。work.views に代入すると、set が無いので strict mode ではその場で TypeError になります。
work.views は括弧なしで読めます。中では #views を返しているだけです。
class Work {
#views = 0;
constructor(title) {
this.title = title;
}
get views() {
return this.#views;
}
}
const work = new Work("ECサイト");
console.log(work.views); // 01 / 5
← → キーでも送れます