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