這是一種最簡單的用法:
(function(){
alert('one second later...');
}).delay(1000);
這個函數會在1秒之后自動被執行
我們看一下delay這個函數的實現方法:
delay: function(delay, bind, args){
return setTimeout(this.pass((args == null ? [] : args), bind), delay);
}
很顯然,它是使用了setTimeout來實現的,那么既然如此我們就可以清理他,下邊是實現方法:
var Fun=function(msg){
alert('fd');
};
var timer=Fun.delay(5000);
//做某些操作之后清理timer
clearTimeout(timer);
接下來我說一下他的高級用法:
var Fun=function(msg){
alert(typeOf(this))//查看被綁定對象的類型
alert(this.get('tag')+'|'+msg);//顯示對象名稱和傳遞的參數
};
//2秒后執行Fun,同時把id='tab1'這個對象傳遞給Fun這個函數讓其this為$('tab1'),然后傳遞一個參數
Fun.delay(2000,$('tab1'),'啊');
這段代碼的意思是,延遲2秒,然后執行Fun這個函數,因為Fun這個函數我用了this,而默認狀況下this對應的對象是window對象,而我卻希望這個函數能夠操作某個節點,所以呢,我就把對節點的綁定傳遞給了他,然后再傳遞msg,此時在函數內使用this是對象就不再是window了,而是變成了我給他綁定的這個節點對象.