在談回呼函數之前,先看下下面兩段程式碼:
不妨猜測程式碼的結果。
function say (value) { alert(value); }alert(say);alert(say('hi js.'));
如果你測試了,你會發現:
只寫變數名稱 say 回傳的將會是 say方法本身,以字串的形式表現出來。
而在變數名稱後面加上()如say()回傳的就會使say方法呼叫後的結果,這裡是彈出value的值。
再看下面的兩段程式碼:
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方法的方法名与下面的匿名函数可以认为是一个东西 // 这样再看上面两段代码是不是对函数可以作为参数传递就更加清晰了say;function (value) { alert(value); }
这里的say或者匿名函数就被称为回调函数。
如果回呼函數需要傳參,如何做到,這裡介紹兩個解決方案。
將回呼函數的參數作為與回呼函數同等級的參數傳遞
回呼函數的參數在呼叫回呼函數內部建立
#相關推薦:
以上是完全掌握js回呼函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!