Practical Training 函式(高階函式、函式的回撥、jQuery的原理、回撥地獄)
阿新 • • 發佈:2021-11-18
本篇內容為課堂的補充知識;簡單的外擴;
高階函式的程式碼:
1的內容 // function f(){ // // 2的內容 // return function(){ // console.log("f()"); // } // } // 接1的內容 // console.log({}); // {} // console.log(typeof {}); // object // console.log(arr instanceof Object); // true// === // 接2的內容 // console.log(f()); // 結果:ƒ (){ console.log(f()); } // f()(); // 輸出的直接是:f()
此高階函式中有兩種方法,其中console.log 後面的註釋內容是瀏覽器後臺打印出來的內容。
函式的回撥:
// 函式的回撥 // function f(fun){ // fun() // } // function sum(){ // console.log("sum");// } // sum();//sum // f(sum); //sum
函式的回撥是什麼?
答:被作為引數傳遞的函式
jQuery的原理:
/ jquery 的原理 // function f(fun,fun2){ // // arguments // btn.click = function(){ // fun(); // fun2(); // } // }
jQuery的原理是什麼?
答:1、jQuery的實現原理
1)jQuery採用的是建構函式模式進行開發的,jQuery是一個類
2)上面說的常用的方法 (CSS、屬性、篩選、事件、動畫、文件處理)都是定義在jQuery.prototype上的 ->只有jQuery的例項才能使用這些方法
2、選擇器/篩選
回撥地獄:
回撥地獄 // function f(fun){ // fun(); // } // 這個是回撥地獄可以一直傳 // f(f(f(f()))); // 後來改了 ==》 Promise 、then // new Promise().then().then().then();
什麼是回撥地獄?
答:到底什麼是回撥地獄? 簡單的說,回撥地獄就是Callback裡面又套了一個Callback,但是如果巢狀層數過多,彷彿掉入地獄,於是有了回撥地獄的說法。
優勢: 回撥地獄給我們帶來什麼?
回撥地獄的優勢:
1.解耦,回撥將子過程從主過程中解耦。 對於相同的輸入,可能對其有不同的處理方式。在回撥函式,我們完成主流程,對於過程中的子流程從主流程中分離出來。
2.非同步回撥不會阻塞主執行緒。舉個例子:就像是:員工沒有完成工作之前老闆就已經下班,當工作完成後,會通過另一個執行緒通知老闆。老闆在這個過程無需等待子過程。