JS:闭包2

闭包1:https://www.cnblogs.com/LIXI-/p/16394745.html
 
4. 回调函数,利用函数复用的功能,制作复用工具,参数返回值
 
 

如何回答有关闭包的问题?

1、闭包的描述

拥有作用域的代码块是一个闭包;

是能够读取其他函数内部的局部变量的函数;

 

2、闭包的使用场景

  1、将函数作为返回值

2、

 

3、闭包的看法

4、在某个项目中


闭包的看法

       优点 :技术难点用闭包解决;

1、函数内部的变量 需要被外部变量使用 但是语法决定了外部变量不能被使用 可以利用闭包解决

2、一些临时数据 比如for 循环的i值 希望未来使用,希望延时业务中使用,可以使用闭包吧临时数据保存到局部作用域中 ;

3、防止变量污染 可以用闭包把一些业务变量放在局部作用域中。

       缺点:

1、闭包使用不当就有致命的问题,例如内存泄漏,

2、内训管理机制:垃圾回收机制、引用技术机制,底层浏览器的代码实现的功能;

3、内存泄露 :如浏览器运行网页 就会执行js代码 引用数据会在内存中占用内存空间;如果有一个对象创建了 ,而且占用了内存 ,却没什么业务使用。

 

 闭包会导致内存泄露:

function fn(){

  var obj = {age:20}

}

调用时 内存中有一个对象

调用完毕 内部的变量没有谁能再访问 对象obj释放

 

内存泄漏解决方案:

1、尽量避开使用闭包或者手动把引用置空

2、在可能存在泄露的地方把标识符引用为null

 

 

posted on 2022-06-21 10:08  香香鲲  阅读(11)  评论(0编辑  收藏  举报