復制代碼 代碼如下:
<body>
<input type="button" value="Button"/>
<script type="text/javascript">
var handler={
message:"Event handled.",
handlerFun:function(){
alert(this.message);
}
};
document.getElementById('btnTest').onclick=handler.handlerFun;
</script>
</body>
復制代碼 代碼如下:
document.getElementById('btnTest').onclick=function(){
handler.handlerFun();
}
自定義bind函數(shù)
復制代碼 代碼如下:
function bind(fn,context){
return function(){
return fn.apply(context,arguments);
};
}
document.getElementById('btnTest').onclick=bind(handler.handlerFun,handler);
小結(jié)
一旦要將某個函數(shù)以函數(shù)指針的形式傳遞,同時該函數(shù)必須在特定的環(huán)境中執(zhí)行,自定義的bind()函數(shù)就可以使用,他們主要用于事件處理程序及setTimeout和setInterval,然而這種綁定方式和普通函數(shù)相比需要更多的內(nèi)存開銷,所以盡量只在必要的時候使用。
新聞熱點
疑難解答
圖片精選