javascriptの中のthisとcall/applyの応用
1001 ワード
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をクリックすると、ジャンプではなく先に提示されます.
説明:対象のイベント方法については、まずイベント方法の実行環境を設定する必要があります.
以下の例のように、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>