dogwood008の開発メモ!

最近のマイブームは機械学習, Ruby on Rails。中でも機械学習を使った金融商品の自動取引に興味があります。

【JavaScript】プライベートメソッドやプライベートフィールドは、接頭辞に「#」をつける

要旨

class MyClass {
  publicMethod() {
    return 'publicMethod'
  }
  #privateMethod() {
    return 'privateMethod'
  }
}

mc = new MyClass()
console.log(mc.publicMethod())
console.log(mc.privateMethod())

実行結果

> class MyClass {
...   publicMethod() {
.....     return 'publicMethod'
.....   }
...   #privateMethod() {
.....     return 'privateMethod'
.....   }
... }
undefined
>
> mc = new MyClass()
MyClass {}
> console.log(mc.publicMethod())
publicMethod
undefined
> console.log(mc.privateMethod())
Uncaught TypeError: mc.privateMethod is not a function
>

Public, Privateそれぞれのメソッド読んだときの動作
Public , Privateそれぞれのメソッド読んだときの動作

詳細

static にも同様に適用できる。IEのみ対応していないが、もうEoLだから考えなくて良いね。

参考

developer.mozilla.org