[JS]回調函數例子

回調函數

回調函數是一段可執行的代碼段,它作爲一個參數傳遞給其他的代碼,其作用是在需要的時候方便調用這段(回調函數)代碼

js中函數=對象,對象可以作爲參數傳給函數。
函數可以作爲參數給一個函數,這個參數就是回調函數

使用

例子1

回調函數是異步操作最基本的方法。

下面是兩個函數f1和f2,編程的意圖是f2必須等到f1執行完成,才能執行。如果f1是異步操作,f2會立即執行,不會等到f1結束再執行。

function f1() {
}

function f2() {
}
f1();
f2();

改寫回調

function f1(callback) {
  callback();
}

function f2() {
}

f1(f2);

例子2

function add(num1, num2, callback){
	var sum = num1 + num2;
	callback(sum);
}

function print(num){
	console.log(num);
}

add(1, 2, print);		//=>3

例子3

匿名回調函數

function add(num1, num2, callback){
	var sum = num1 + num2;
	callback(sum);
}

add(1, 2, function(sum){
	console.log(sum);		//=>3
});

回調函數優缺點

  • 優點是簡單、容易理解和實現
  • 缺點是不利於代碼的閱讀和維護,各個部分之間高度耦合(coupling),使得程序結構混亂、流程難以追蹤(尤其是多個回調函數嵌套的情況),而且每個任務只能指定一個回調函數。

使用場景

  • 異步編程
  • 事件監聽、處理
  • setTimeout、setInterval方法

參考鏈接

https://javascript.ruanyifeng.com/advanced/single-thread.html#toc2
https://www.w3cplus.com/javascript/Sexy-Javascript-understand-the-callback-function-with-the-use-of-Javascript-in.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章