Javascriptでオブジェクトをクラスのように扱う方法

こんにちは!ぐちです。

Javascript

まず初めにお伝えすることがあります。実はJavaScriptにはクラスというものがありません。タイトルに書いた内容と乖離してるじゃないかと言わないでくださいね。笑

クラスというものはないのですがオブジェクトをクラスのように扱うことができます。

prototype

Javascriptにはprototypeと呼ばれるものがありこれを利用することでクラスのように複数の機能で同じプロパティを使えたり変数や定数、処理などをまとめることができます。
prototypeの詳しい説明は検索して頂くとして早速クラスを定義していきたいと思います。

クラス定義

まずは下記のように関数を作ります。このときにメソッドで使用する変数や定数を定義しておきます。

function HogeClass(){
    this.vol = 10;
}

メソッド定義

ここで出てくるのがprototypeなのですが下記のようにprototypeオブジェクトに関数を定義します。

HogeClass.prototype.method1 = function(){

}

複数のメソッドを書く場合はオブジェクトリテラルの構文で下記のように書くことができます。

HogeClass.prototype = {
    method1 : function(){

    },
    method2 : function(){

    }
}

prototype内でthisと記述すると参照はクラス(ここではHogeClass)となります。

function HogeClass(){
    this.vol = 10;
}

HogeClass.prototype.method1 = function(){
    console.log(this.vol);
}

JavaやPHPのようにクラスの概念がなくprototypeというものが存在していますが、上記のようにすることで機能をまとめたりメモリ消費量を低減してパフォーマンス性の高いプログラムにすることができます。

ぜひ習得してくださいね!

では今回はこの辺で。