一、前奏
在談回調函數之前,先看下下面兩段代碼:
不妨猜測一下代碼的結果。
function say (value) alert(say); alert(say('hi js.'));
如果你測試了,就會發現:
只寫變量名 say 返回的將會是 say方法本身,以字符串的形式表現出來。
而在變量名后加()如say()返回的就會使say方法調用后的結果,這里是彈出value的值。
二、js中函數可以作為參數傳遞
再看下面的兩段代碼:
function say (value) { alert(value);
} function execute (someFunction, value) { someFunction(value);
}
execute(say, 'hi js.');
與
function execute (someFunction, value) { someFunction(value);
}
execute(function(value){alert(value);}, 'hi js.');
上面第一段代碼是將say方法作為參數傳遞給execute方法
第二段代碼則是直接將匿名函數作為參數傳遞給execute方法
實際上:
function say (value) { alert(value);
} say; function (value) { alert(value);
}
這里的say或者匿名函數就被稱為回調函數。
三、回調函數易混淆點——傳參
如果回調函數需要傳參,如何做到,這里介紹兩種解決方案。
-
將回調函數的參數作為與回調函數同等級的參數進行傳遞
四、寫在最后
回調函數應用場景多用在使用 js 寫組件時,尤其是組件的事件很多都需要回調函數的支持。
轉自:csdn 作者:dkvirus
藍藍設計( paul-jarrel.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務