什么是闭包?闭包有什么作用,缺点是什么?
闭包的概念:
-
JavaScript中函数会产生闭包(closure)。闭包是函数本身和该函数声明时所处的环境状态的组合;
-
函数能够“记忆住”其定义时所处的环境,即使函数不在其定义的环境中被调用,也能访问定义时所处环境的变量;
-
在JavaScript中,每次创建函数时都会创建闭包
闭包的作用:
-
当闭包产生时,函数所处环境的状态会始终保持在内存中,不会在外层函数调用后被自动清除。这就是闭包的记忆性;
-
模拟私有变量,即封装对象方法
闭包的缺点:
-
不能滥用闭包,否则会造成网页的性能问题,严重时可能导致内存泄露(程序中已动态分配的内存由于某种原因未释放或无法释放)
闭包的表现形式:
闭包是作用域应用的特殊情况,有两种表现:函数作为参数被传递,函数作为返回值被返回
函数作为返回值:
1 // 函数作为返回值 2 3 function create(){ 4 let a = 100; 5 return function(){ 6 console.log(a); 7 } 8 } 9 10 let fun = create(); 11 let a = 500; 12 fun(); // 100
函数作为参数被传递:
1 function print(fun){ 2 let a = 50; 3 fun(); 4 } 5 6 let a = 362; 7 function fn(){ 8 console.log(a); 9 } 10 11 print(fn);// 362
标签:闭包,function,函数,JavaScript,概念,let,fun From: https://www.cnblogs.com/LannyChung/p/17082411.html