5.写一个返回闭包的函数
1.闭包函数是指有权访问另一个函数作用域中的变量的函数
2.创建闭包函数最常见的方式是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量
3.闭包的特点:1函数嵌套函数,
2 函数内部可以引用外部的参数和变量
3 参数和变量不会被垃圾回收机制回收
4.闭包的优点:1 希望一个变量长期驻扎在内存中 *
2 避免全局变量的污染 *
3 私有变量存在
5.闭包的实现 1:函数嵌套函数 *
2 外层函数返回内层函数 *
3 外面有一全局变量接受外层函数
function fun1() {
var sum=0;
function fun2() {
sum++;
return sum
}
return fun2
}
var s=fun1();
console.log(s());
// 自执行函数 的闭包
//
var fun3=function () {
var a=3;
return{
b:7,
sum:function () {
return this.b+a;
}
}
}();
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() {
}
返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量!


浙公网安备 33010602011771号