范仁义js课程---57、闭包缺点

一、总结

一句话总结:

闭包的内部变量常驻内存,就会造成内存泄漏的问题,可以将外部调用闭包的变量赋值为null,这样可以解决闭包内部变量常驻内存的问题



function fn1() {
var a=10;
function fn2(){
console.log(++a);
}
return fn2;
}
var fn3=fn1();
console.log(fn3);
fn3();

fn3=null;


 

 

1、如何解决闭包造成的内存泄漏的问题?

将外部调用闭包的变量赋值为null



function fn1() {
var a=10;
function fn2(){
console.log(++a);
}
return fn2;
}
var fn3=fn1();
console.log(fn3);
fn3();

fn3=null;


 

 

 

二、闭包缺点

 



1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>闭包缺点</title>
6 </head>
7 <body>
8 <!--
9 闭包缺点
10 造成内存泄漏的问题
11
12 如何解决
13 将外部调用闭包的变量赋值为null
14
15 -->
16 <script>
17 function fn1() {
18 var a=10;
19 function fn2(){
20 console.log(++a);
21 }
22 return fn2;
23 }
24 var fn3=fn1();
25 console.log(fn3);
26 fn3();
27
28 fn3=null;
29
30 </script>
31 </body>
32 </html>