実装ソースコード
<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();
};