JavaScriptでもオブジェクト指向のプログラミングが可能です。
ただし、注意してほしいのはJavaScriptのオブジェクト指向はプロトタイプベースなので
一般的に言われるクラスによるオブジェクト指向ではありません。
またここに記載されている情報はECMAScript3なので最新のECMAScript5で使えるかは微妙です。
ECMAScript5になるとclass定義が追加されるとかされないとか。
JavaScriptにおけるクラスはプロトタイプベースといわれるオブジェクト指向なので
Javaのクラスとは異なります。Javaのクラスはクラスベースといわれるそうです。
クラスベースのクラスが一般的なクラスなので、JavaScriptのクラスはクラスと呼べないのでは
というのもあるようですが、該当する言葉がないのでクラスという名前がついているようです。
ここでも紛らわしいかもしれませんが、クラスと呼ぶことにします。
さっそくですが、クラスを作成してみましょう。
// 人間クラスを定義 function Human(){ } // インスタンスを生成 var hopsii = new Human();
どうみても関数にしかみえませんが、JavaScriptではこれがクラスになります。
正確には関数にクラスとしての役割を持たせているです。
クラス名は一般的に頭文字を大文字にしておくとよいです。
頭文字を大文字にしておけば、クラスなのか関数なのか判別もしやすいと思います。
クラスの定義方法はわかりましたが、クラスを初期化するコンストラクタはどこにあるのかというと
先ほど定義したクラス(Human)をnew演算子によって使用したときにコンストラクタといわれるようです。
// 人間クラスを定義 function Human(){ } // これもクラス var Human = function(){ }
JavaScriptは柔軟な言語のため1つのことを行うにもいくつもの方法があります。
様々な場所からクラスの作成方法を見る限り1つめの方法がよく使われているみたいです。
なので、1つ目の方法でクラスを作成するようにしたほうが誤解を招く確率が減ると思います。
日付 | 詳細 |
---|---|
2011/09/02 | コンテンツ公開 |
Copyright (C) 2011 ほぷしぃ. All Rights Reserved.