JavaScriptのクラスについて

目下勉強中のJavaScriptのクラスについて備忘録

 

JavaScriptのクラスは、Functionオブジェクトがその役割を担っているので、

 var MyClass = function() {

     // これがコンストラクタ

 }

 var o = new MyClass();

こんな感じでクラスを定義してインスタンス化する。

 

インタフェースというか公開するメソッドは、コンストラクタ内でプロパティに関数オブジェクトを代入することで定義する。

 var MyClass = function() {

     // これがコンストラクタ

    

     this.hoge = function() {

         // これが公開するメソッド

     }

 }

 

公開しない、いわゆるprivateなメソッドは、コンストラクタ内でローカル変数に関数オブジェクトを代入することで定義する。

 var MyClass = function() {

     // これがコンストラクタ

    

     this.hoge = function() {

         // これが公開するメソッド

     }

 

     var.private_hoge = function() {

         // これがprivateなメソッド

     }

 }

 

同様に、コンストラクタ内でfunction命令で関数を定義しても非公開関数を作れる。

これは、あるオープンソースのコードで使われていたやり方なんだけど、

このやり方の意味と目的については、書籍やgoogle先生では確認できてないので、

上記は、あくまでも結果から推測した解釈。

 var MyClass = function() {

     // これがコンストラクタ

    

     this.hoge = function() {

         // これが公開するメソッド

     }

 

     var.private_hoge = function() {

         // これがprivateなメソッド

     }

 

     function func_hoge() {

         // これもprivateなメソッド

     }

 }