在最近項目需求中發現,完成一些功能的時候總是要調很多結構類似的方法,寫起來很繁瑣,所以就想寫一個“萬能”方法,是的代碼更簡潔。即:把一個方法作為參數傳給這個“萬能”方法,讓它去執行你給定的方法,就類似於ajax中success/error方法傳參,總是傳入一個方法體。
####1.將方法作為參數
代碼:
var a = function(){
console.info("我成功執行了...");
}
var excuteFunc = function(funcName){
funcName();
}
excuteFunc(a);
控制台輸出:
我成功執行了...
上面我們執行把a方法作為參數傳給excuteFunc方法,用excuteFunc執行了a方法,但是如果a方法也含有參數呢,看下面的例子
####2.含參數的方法作為參數
代碼:
var b = function(b){
console.info("我成功執行了"+b);
}
var setFunc = function(fName,p){
fName(p);
}
setFunc(b,"b方法");
控制台輸出:
我成功執行了b方法
上例中的setFunc方法的第一個參數是要調用方法的句柄,第二個參數是要調用方法的參數,如果是多個依次列出即可
####3一個定時刷新數據的使用場景
var getData = function(url){
$.post(url,function(result){
//邏輯代碼...
});
}
var getData1...
.
.
.
var setTimeFresh = function(fName,time,url){
setInterval(fName,time,url);
}
setTimeFresh(getData,3000,url);//3秒獲取依次數據刷新頁面
setTimeFresh(getData1,10000,url1);
上例通過調用setTImeFresh方法去定時刷新指定數據,從而達到頁面部分數據定時刷新的職能
小白菜又來獻丑,勿怪!