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.异步回调不会阻塞主线程。举个例子:就像是:员工没有完成工作之前老板就已经下班,当工作完成后,会通过另一个线程通知老板。老板在这个过程无需等待子过程。