特集PC技術

コアJavaScript(ECMAScript)の図書室

 

33冊目 【JavaScript】[ECMAScript] クラス

JavaScriptでもオブジェクト指向のプログラミングが可能です。
ただし、注意してほしいのはJavaScriptのオブジェクト指向はプロトタイプベースなので
一般的に言われるクラスによるオブジェクト指向ではありません。
またここに記載されている情報はECMAScript3なので最新のECMAScript5で使えるかは微妙です。
ECMAScript5になるとclass定義が追加されるとかされないとか。
もし、変わっていたら別で取り扱わないといかんな。

目次

[1] クラス

JavaScriptにおけるクラスはプロトタイプベースといわれるオブジェクト指向なので
Javaのクラスとは異なります。Javaのクラスはクラスベースといわれるそうです。
クラスベースのクラスが一般的なクラスなので、JavaScriptのクラスはクラスと呼べないのでは
というのもあるようですが、該当する言葉がないのでクラスという名前がついているようです。
ここでも紛らわしいかもしれませんが、クラスと呼ぶことにします。

[2] クラスを作ってみよう

さっそくですが、クラスを作成してみましょう。

// 人間クラスを定義
function Human(){

}

// インスタンスを生成
var hopsii = new Human();

どうみても関数にしかみえませんが、JavaScriptではこれがクラスになります。
正確には関数にクラスとしての役割を持たせているです。
クラス名は一般的に頭文字を大文字にしておくとよいです。
頭文字を大文字にしておけば、クラスなのか関数なのか判別もしやすいと思います。
クラスの定義方法はわかりましたが、クラスを初期化するコンストラクタはどこにあるのかというと
先ほど定義したクラス(Human)をnew演算子によって使用したときにコンストラクタといわれるようです。

[3] クラスの定義方法は他にもある

// 人間クラスを定義
function Human(){

}

// これもクラス
var Human = function(){

}

JavaScriptは柔軟な言語のため1つのことを行うにもいくつもの方法があります。
様々な場所からクラスの作成方法を見る限り1つめの方法がよく使われているみたいです。
なので、1つ目の方法でクラスを作成するようにしたほうが誤解を招く確率が減ると思います。

[4] 更新履歴

日付 詳細
2011/09/02 コンテンツ公開

コメントの投稿


画像の中に見える文字を入力してください。

トラックバックURL

http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1708

サイト内検索

コアJavaScript(ECMAScript)の図書室

twitterTwitter

最新ブログ記事

2015年06月13日

JavaScriptの情報室

4冊目 ハイブリッドアプリが作れる。tabris.js

2014年10月16日

C++言語学習録

第3回 ファイルを分割してみよう

2014年10月09日

C++言語学習録

第2回 オブジェクト指向の復習

2014年10月02日

C++言語学習録

第1回 C++の開発環境を整える

2014年09月25日

Swiftを試してみようなう。

第4回 Swiftでクラスを使うなう。

ISL 情報戦略研究所

pagetopこのページの先頭へ戻る