call/apply方法作用是将 某对象的某个方法置于某种环境下执行。
如下面的例子,在window.onload事件下执行 checkme.init方法,设定方法执行环境为checkme(checkme.init.apply(checkme);) ,在init方法中,给link添加onclick事件时,首先需要 var _self = this;
,然后将checkMe.sayGoodbye方法置于link.onclick上,同时需要设定checkMe.sayGoodbye的执行环境
(_self)。
执行结果,点击link时,先提示,而不是跳转。
说明:在 对象的事件方法时候,需要先设定事件方法的执行环境(其实就是执行下call/apply方法,返回匿名函数)。
<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>
本文介绍JavaScript中使用call/apply方法来设置方法执行环境的具体应用场景。通过实例演示如何在特定对象环境中执行方法,并确保事件处理程序正确引用对象上下文。
1046

被折叠的 条评论
为什么被折叠?



