javascriptの中のthisとcall/applyの応用


call/applyメソッドは、あるオブジェクトのある方法をある環境に置いて実行します.
 
以下の例のように、window.onloadイベントでcheckeme.init方法を実行し、設定方法実行環境はcheckeme(check.init.apply)であり、initメソッドでは、linkにオンclickイベントを追加する場合、まずvar_が必要となります.self=thisその後、check Me.sayGoodbye方法をlink.onclickに置いて、check Me.sayGoodbyeの実行環境を設定する必要があります.
(ウself)
 
実行結果は、linkをクリックすると、ジャンプではなく先に提示されます.
 
説明:対象のイベント方法については、まずイベント方法の実行環境を設定する必要があります.
 
 
<script type="text/javascript">
<!--
function checkMe(){
	this.msg = "    ";
};
checkMe.prototype={
	sayGoodbye:function(msg) {
	        return confirm(this.msg + msg);
	},
	init:function(){
		var link = document.getElementById('ha');
		var _self = this;
		link.onclick = function(){
			_self.sayGoodbye.call(_self,'abc');
		}
	}
};
var checkme = new checkMe();
	window.onload = function(){
	checkme.init.apply(checkme);
}
//-->
</script>
<a href="javascript:void(0)" id=ha> aaaaa</a>