新四季網

詳解回調函數(詳解回調函數)

2023-09-20 02:53:53 1

前言

回調函數作為我們經常用到的一種函數,看似複雜,實則很容易理解,下面讓我來帶你一步步理解回調函數。

詳解

我們先來看一個我們最熟悉的普通函數的定義與調用。

function map (c) { console.log(c);}map(5);

這是我們最常見的函數,而這種函數定義時就是規定了方法,而需要傳入變量。

那我們換一種思維,我們規定好函數的變量,而傳入方法呢,我們這裡設置方法b為我們的形參

var map = function (b) { b(4);}

這時我們發現,我們在調用函數map的時候需要傳入一個方法進去,那我們就按照定義傳入一個方法。

map( function(a) { console.log(a);} );

此時我們並沒有給這個傳入的方法起名字,這個方法又稱之為匿名函數,所以我們這裡調用map方法時可以簡寫為

map((a) => { console.log(a);});

列印4,而我們紅框裡的內容就是我們傳入的參數,這不過這個參數是一個函數罷了。也就是說,紅框裡的內容與上面的形參b相等,我們用紅框裡的函數去替換b,就得到了 console.log(4) 。

二次回調函數

我們再來看一個二次回調的例子

剛才我們在函數定義時規定了變量是一個常數,而如果我們將這個常數換為一個匿名函數呢

var map = function (b){ b( (a)=>{ console.log(a); } );};

我們看到,剛才的4換為了一個函數,我們如何去調用方法map呢?

我們可以逆向思維想像一下,我們調用函數map時需要傳入一個參數,參數替代b,而我們此時b裡已經有了方法,而缺少變量,這就相當於我們上面講一次回調函數時的調用函數部分,此時我們傳入一個定義了變量而參數是個方法的方法進去,就相當於一次回調函數的函數定義部分。

map( function (e) { e(6);} );

簡寫為 map( (e) => {e(6);} ); 。

此時我們紅框裡的內容依舊相當於上面的形參b,而替換掉b以後,我們藍框裡的內容就相當於下面的形參e,再替換掉e以後,就只剩下了我們最終想要表達的列印方法 console.log(6); 。

總結

根據二次回調函數的思想,我們可以無限回調。但我們對多次回調函數很少用到。

我們對於基礎知識應該牢牢把握才能理解整篇代碼。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了