JSのプライベートフィールドは接頭辞に#(シャープ)を付けて表示する

JSのプライベートフィールドは接頭辞に#(シャープ)を付けて表示する

項目 バージョン
node v12.13.1

今までnode.jsの開発ではプライベートフィールドやプライベートメソッドは_(アンダーバー)を付けて規約で決めたりしていました。

規約で決めていただけなので実際は_ageというフィールドがあってもアクセスは可能です。

node.js v12から、プライベートフィールドには接頭辞に#(シャープ)を付けて変数名を命名するとプライベートフィールドになります。

class Sample {
  #age = 0 // プライベートフィールド
  constructor(name, age) {
    this.name = name
    this.#age = age // 初期化
  }
  getName() {
    return this.name
  }
  getAge() {
    return this.#age
  }
}

const user1 = new Sample('takhashi', 20)
console.log(user1.getName())
console.log(user1.name) // アクセスできる
console.log(user1.getAge())
// console.log(user1.#age) // アクセスできないのでエラーとなる

privateという予約後の使い道はどうなるんでしょう。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました