微信扫一扫打赏支持

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

范仁义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;

 

 

 

二、闭包缺点

博客对应课程的视频位置:57、闭包缺点
https://www.fanrenyi.com/video/19/158

 

 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>

 

 

 

 

 

 
posted @ 2020-03-09 07:29  范仁义  阅读(154)  评论(0编辑  收藏  举报