javascriptでクラスっぽい事をする

Javascriptにはクラスは無いそうです。えぇ無いんだそうです...
ただ、何作るにしてもクラスを使わないとやってられない時代なので、どうした物かと色々調べるとクラスっぽい事ができるらしいです。

コンストラクタ

以下のような関数を作成します。
	hoge = function( num ) {
	    this.num = num;
	}
そして、 newを使用して、hogeをオブジェクトとして作成します。
    var obj = new hoge( 100 );
    alert( obj.num );
    var obj2 = new hoge( 110 );
    alert( obj2.num );

prototypeオブジェクトを使用してプロパティを追加する

prototypeオブジェクトを使用して新しいプロパティを追加します
	hoge = function( num ) {
	    this.num = num;
	};
	hoge.prototype.calc = function( c ) { return this.num * c; };
javascriptには暗黙の参照という物がありまして、オブジェクトAをプロトタイプとしているオブジェクトBは、オブジェクトAに対し暗黙の参照を持っているという事だそうです。
いや、正直よく理解していないのだけど…、まぁ全てpublicという事かな???
    var obj = new hoge( 100 );
    alert( obj.calc( 3 ) );
そんな感じで追加したプロパティを使用すると、300と戻り値が返ってきます。

暗黙の参照ですが、代入やdelete演算子は暗黙の参照をたどらないそうです。
まぁ難しく考えてもしょうがないので、基本C++のクラスと同じでメンバは全てpublicであると思ってOK?

参考サイト

CodeZine-プロトタイプによるJavaScriptのオブジェクト指向