実装ソースコード
<script src="jquery.js"></script> <script src="Animal.js"></script> ~省略~ <script> var animal;//動物クラス $( function() { // 初期値を渡しながら、Animalクラスを作成する。 var param ={ 'res_slt':'#res', 'animal_name':'ヤンバルクイナ'}; animal = new Animal(param); }); function test1(){ // タイトルを表示する animal.showTitle(); // 数秒後に動物名を表示する animal.showAnimalName('国頭村'); } </script> ~省略~ <input type="button" value="テスト実行" onclick="test1()" /> <div id="res"></div>
Animalクラスのソースコード
var Animal =function(p_params){ // 出力要素 this.res_slt = p_params.res_slt; // 動物名 this.animal_name = p_params.animal_name; // 自分自身のインスタンス。 プライベートメソッドやコールバック関数で利用するときに使う。 var myself=this; /** * コンストラクタ */ this.constract=function(){ var str = "コンストラクタが呼び出されました。<br>"; $(this.res_slt).append(str); }; /** * 当クラスのインスタンスを取得する */ this.getInstance = function(){ return this; }; /** * タイトルを表示する */ this.showTitle = function(){ var str = '動物のタイトル<br>'; $(this.res_slt).append(str); }; /** * 動物名を表示させる。 * * コールバック系の関数であるsetTimeoutを使い、2秒後に動物名を表示させる。 * @param string place 場所 */ this.showAnimalName=function(place){ setTimeout(function(){ var str = place + 'の' + myself.animal_name + 'について。【2秒後に表示】<br>'; $(myself.res_slt).append(str); privateName();//プライベートメソッドを呼び出せる },2000); }; /** * プライベートなメソッド * メンバにアクセスするときはthisではなくmyselfを使ってアクセスすること。 */ function privateName(){ var str = 'プライベートな' + myself.animal_name;; $(myself.res_slt).append(str); }; //コンストラクタ呼出し(クラス末尾にて定義すること) this.constract(); };