1. 程式人生 > 其它 >Practical Training 函式(高階函式、函式的回撥、jQuery的原理、回撥地獄)

Practical Training 函式(高階函式、函式的回撥、jQuery的原理、回撥地獄)

本篇內容為課堂的補充知識;簡單的外擴;

高階函式的程式碼:

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.非同步回撥不會阻塞主執行緒。舉個例子:就像是:員工沒有完成工作之前老闆就已經下班,當工作完成後,會通過另一個執行緒通知老闆。老闆在這個過程無需等待子過程。