av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 回調(diào)函數(shù)和普通調(diào)用函數(shù)的區(qū)別?

瀏覽:123日期:2023-06-04 11:16:41

問(wèn)題描述

回調(diào)函數(shù)的定義是將b函數(shù)當(dāng)做參數(shù)傳給a去執(zhí)行,此時(shí)b就是回調(diào)函數(shù),我突然有個(gè)疑問(wèn),它和a函數(shù)里直接調(diào)用b有什么區(qū)別呢?我自己寫了個(gè)demo

function a(){ b(); console.log(’hello world’);}function b(){ var n = 0; for(var i = 0;i < 1000000000;i++){n++; } return n;}a(); //hello world

大概3秒鐘才能看到輸出結(jié)果,然后改寫為回調(diào)函數(shù)的形式

function a(callback){ callback.call(this); console.log(’hello world’);}function b(){ var n = 0; for(var i = 0;i < 1000000000;i++){ } console.log(1);}a(b); //hello world

也是3秒后才能看到輸出結(jié)果找了很多文章,都說(shuō)明了當(dāng)b作為a函數(shù)的回調(diào)函數(shù)執(zhí)行時(shí),并不妨礙a函數(shù)的正常執(zhí)行,按照這個(gè)邏輯,第二種方式應(yīng)該是立即輸出hello world的,難道是我回調(diào)函數(shù)用錯(cuò)了嗎?還是理解有問(wèn)題?

問(wèn)題解答

回答1:

1.性能沒(méi)有區(qū)別2.回調(diào)函數(shù)是作為參數(shù)傳遞的,操作更加靈活,比如,你可以定義一個(gè)函數(shù)c,那可以運(yùn)行 b(c),當(dāng)你在函數(shù)內(nèi)運(yùn)行函數(shù)的時(shí)候,就失去了變量的靈活性。

回答2:

嗯,是你理解錯(cuò)了,調(diào)用的效果是一樣的。還有 callback.call(this); 畫蛇添足,跟 callback() 的 this 是一樣的。

回調(diào)的好處是依賴倒置,不用修改 a 的代碼就可以讓 a 調(diào)用 c、d、e....

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 欧美专区在线观看 | av不卡一区 | 一本久久道 | 免费av在线播放 | 日韩欧美小视频 | 亚洲欧美日韩一区 | 久热精品视频在线观看 | 成人综合婷婷国产精品久久 | 欧美又大又硬又粗bbbbb | 久久综合在线 | 国产一级大片 | 91青青草| 日韩精品视频在线免费观看 | 国产一级在线视频 | 久久免费精品视频 | 精品日韩在线 | 国产理论在线 | 国产午夜一区 | 国产性色av | 久久久精品一区 | 日本免费黄色网址 | 看免费毛片 | 97精品在线视频 | 欧美一级色 | 久久黄色免费视频 | 美女视频一区二区 | 欧美黄色一级 | a一级黄色片 | 日韩伦理在线观看 | 中文字幕的| 亚洲高清中文字幕 | 欧美天天| 欧美午夜精品一区二区三区 | 成人精品视频在线观看 | 亚洲精品一二三四 | 国产又粗又长又爽 | 国产91在线播放 | 91亚洲精品在线 | 久久久久免费视频 | 亚洲精品日韩精品 | 欧美性猛交一区二区三区精品 |