javascript中函數作為參數調用的方法_javascript技巧

來源:互聯網
上載者:User

本文執行個體講述了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程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.