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?