首頁  >  文章  >  web前端  >  javascript中函數作為參數呼叫的方法_javascript技巧

javascript中函數作為參數呼叫的方法_javascript技巧

WBOY
WBOY原創
2016-05-16 16:15:091319瀏覽

本文實例講述了javascript中函數作為參數呼叫的方法。分享給大家供大家參考。具體分析如下:

先來看範例:

function Map(){
var obj = {};

this.put = function(key, value){
obj[key] = value;
}

this.eachMap = function(fn){
for(var attr in obj){
fn(attr, obj[attr]);
}
}

}
var m = new Map();
m.put('01', 'abc');
m.put('02', 1024);
m.put('03', true);
m.put('04', 0);
m.put('05', false);

m.eachMap(function(key, value){
alert(key + " : " + value);
});

這段程式碼執行的順序是:從上往下順序解釋執行,這是JS的規定。
這裡主要說明m.eachMap()中函數做為參數是怎麼傳遞並執行的:

step1:執行到m.eachMap這個方法的時候,JS會去找對應的this.eachMap這個方法;
step2:找到this.eachMap這個方法,會依照函數體內的語句順序執行;
step3:當執行到fn(attr, obj[attr]);的時候,他會回到for語句執行;注意在返回for語句執行之前,attr是沒有值的;從for語句返回之後,attr的值就有了,為'01',而obj[attr]的值也有了,為'abc';
step4:接著,fn(attr, obj[attr]);會回到m.eachMap這個方法的參數函數中,即

function(key, value){
alert(key + " : " + value);
}

attr替換key,obj[attr]取代value,並執行alert語句,輸出。

step5:繼續執行for循環,重複執行step4,並輸出,直到結束。

希望本文所述對大家的javascript程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn