亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

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

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

問題描述

回調(diào)函數(shù)的定義是將b函數(shù)當做參數(shù)傳給a去執(zhí)行,此時b就是回調(diào)函數(shù),我突然有個疑問,它和a函數(shù)里直接調(diào)用b有什么區(qū)別呢?我自己寫了個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秒鐘才能看到輸出結果,然后改寫為回調(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秒后才能看到輸出結果找了很多文章,都說明了當b作為a函數(shù)的回調(diào)函數(shù)執(zhí)行時,并不妨礙a函數(shù)的正常執(zhí)行,按照這個邏輯,第二種方式應該是立即輸出hello world的,難道是我回調(diào)函數(shù)用錯了嗎?還是理解有問題?

問題解答

回答1:

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

回答2:

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

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 亚洲色图第十页 | 国产精品亚洲片在线观看麻豆 | 国产香港特级一级毛片 | 国产99久9在线视频 国产99久久精品 | 午夜大片免费完整在线看 | 污视频网页 | 亚洲欧美日本国产综合在线 | 欧美一区二区三区在观看 | 中国黄色片一级 | 国产精品v欧美精品∨日韩 国产精品www | 亚洲在线播放视频 | 97玖玖| 欧美成人777| 国产精品三级一区二区 | 国产日韩视频一区 | 黄在线免费看 | 91嫩草国产在线观看免费 | 欧美日韩一区二区在线观看 | 一级一片免费看 | 二级黄色毛片 | 免费国产成人手机在线观看 | 农村寡妇一级毛片免费看视频 | 国产精品久久久亚洲第一牛牛 | 亚洲一区二区三区一品精 | 91寡妇天天综合久久影院 | 国产成人久久蜜一区二区 | 国产小嫩模好紧 | 国产成人综合久久精品红 | 久久久午夜影院 | 国产高清国产专区国产精品 | 日本一级毛片 | 鲁丝丝国产一区二区 | 4444在线观看片 | 国产视频一二三区 | 国内精品久久久久影院6 | 黄色小视频在线观看 | 色婷婷色综合激情国产日韩 | 99视频在线国产 | 国产精品美女久久久久网站 | 91preon国产在线观看 | 国产亚洲精品久久久久久久 |