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) // アクセスできないのでエラーとなる

view raw
gistfile1.txt
hosted with ❤ by GitHub

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

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA