<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> // 函数闭包 /* *闭包函数是指有权访问另一个函数作用域中的变量的函数, * 创建闭包函数最常见的方式是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量 * 闭包的特点:1函数嵌套函数, * 2 函数内部可以引用外部的参数和变量 * 3 参数和变量不会被垃圾回收机制回收 * 闭包的优点:1 希望一个变量长期驻扎在内存中 * 2 避免全局变量的污染 * 3 私有变量存在 * 闭包的实现 1:函数嵌套函数 * 2 外层函数返回内层函数 * 3 外面有一全局变量接受外层函数 * */ function fun1() { var sum=0; function fun2() { sum++; return sum } return fun2 } var s=fun1(); console.log(s()); console.log(s()); console.log(s()); s=null; console.log(s); // 自执行函数 的闭包 // var fun3=function () { var a=3; return{ b:7, sum:function () { return this.b+a; } } }(); console.log(fun3.sum()); console.log(fun3.sum()); /* * 把函数名当参数调用 * 回调函数 * * */ function b() { console.log("b"); } function c() { console.log("c"); } function d(fun) { fun(); } d(b); d(c); // 循环 var num=0; function a1(fun) { fun(a1); } function a2(fun) { num++; console.log(num); if(num>10) return; fun(a2); } a1(a2); // 事件函数 也是 回调函数 this.addEventListener("click",clickHandler); function clickHandler(e) { } setInterval(animation,16); function animation() { } </script> </body> </html>
js 闭包函数以及 回调函数
最新推荐文章于 2023-03-29 18:01:16 发布