国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

javascript - 回調函數和普通調用函數的區別?

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

問題描述

回調函數的定義是將b函數當做參數傳給a去執行,此時b就是回調函數,我突然有個疑問,它和a函數里直接調用b有什么區別呢?我自己寫了個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秒鐘才能看到輸出結果,然后改寫為回調函數的形式

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函數的回調函數執行時,并不妨礙a函數的正常執行,按照這個邏輯,第二種方式應該是立即輸出hello world的,難道是我回調函數用錯了嗎?還是理解有問題?

問題解答

回答1:

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

回答2:

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

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 国产一区二区三区在线观看视频 | 国产精品一区二区久久精品涩爱 | 2020黄网| 手机成人看片 | 欧美另类视频在线 | 亚洲欧洲国产成人精品 | 国产成人狂喷潮在线观看2345 | 日韩欧一级毛片在线播无遮挡 | 国产在线成人一区二区 | 精品国产一区二区三区不卡 | 一本色道久久88 | 免费看美女无遮掩的软件 | 在线视频亚洲欧美 | 亚洲欧美视频在线播放 | 久久久久女人精品毛片九一 | 亚洲欧洲一二三区机械有限公司 | 国产亚洲人成网站观看 | 欧美日韩国产一区二区三区在线观看 | 草草久久97超级碰碰碰免费 | 亚洲欧美中文日韩二区一区 | 国产三a级日本三级日产三级 | 欧美成人一区二区三区 | 久久亚洲综合 | 美女视频黄色的免费 | 亚洲午夜a | 久久―日本道色综合久久 | 亚洲一级在线 | 久青草免费在线视频 | 久草在线播放视频 | 欧洲亚洲综合一区二区三区 | 成人久久伊人精品伊人 | 国产91丝袜在线播放九色 | 毛片免费在线视频 | 日产乱码精品一二三区 | 图片区偷拍区小说区 | 国产精品欧美亚洲韩国日本不卡 | 在线精品免费视频 | 亚洲视频欧美 | 国产成人毛片亚洲精品不卡 | 欧美精品成人一区二区视频一 | 欧美黑人xxxxxxxxxx |