闭包的概念?优缺点?使用场景?

简介: 闭包的概念?优缺点?使用场景?

闭包的概念:闭包就是能读取其他函数内部变量的函数。

  1. 避免全局变量的污染
  2. 希望一个变量长期存储在内存中(缓存变量)


缺点:

  1. 内存泄露(消耗)
  2. 常驻内存,增加内存使用量


使用场景:封装功能时(需要使用私有的属性和方法),函数防抖、函数节流、函数柯里化、给元素伪数组添加事件需要使用元素的索引值。


造成内存泄露的原因


  1. 意外的全局变量(在函数内部没有使用var进行声明的变量)
  2. console.log
  3. 闭包
  4. 对象的循环引用
  5. 未清除的计时器
  6. DOM泄露(获取到DOM节点之后,将DOM节点删除,但是没有手动释放变量,拿对应的DOM节点在变量中还可以访问到,就会造成泄露)


相关文章
|
4月前
|
XML JSON 前端开发
前端深浅拷贝各有哪些方法,优缺点
前端深浅拷贝各有哪些方法,优缺点
39 0
|
7月前
继承(6种方式)以及优缺点
继承(6种方式)以及优缺点
|
21天前
|
Java
什么是闭包 有哪些优缺点
什么是闭包 有哪些优缺点
|
4月前
闭包的理解 使用场景 优缺点 如何避免闭包
闭包的理解 使用场景 优缺点 如何避免闭包
15 0
|
4月前
|
自然语言处理 JavaScript 前端开发
JavaScript开发基础问题:如何理解闭包及其作用?
JavaScript开发基础问题:如何理解闭包及其作用?
36 5
|
9月前
如何理解ALU的优点?
ALU是组合逻辑电路!
163 0
|
10月前
|
安全 Java 测试技术
工作中单例模式用法及其使用场景?
工作中单例模式用法及其使用场景?
73 0
|
10月前
|
设计模式 测试技术
工作中模板方法模式用法及其使用场景
工作中模板方法模式用法及其使用场景
75 0
|
开发框架 PHP
PHPfinal方法的使用场景是什么?底层原理是什么?
PHPfinal方法的使用场景是什么?底层原理是什么?
|
设计模式 自然语言处理 JavaScript
闭包的原理、优点和缺点浅析
闭包指的是那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。- 《Javascript高级程序设计(第四版)》 注意:匿名函数不是闭包 一个函数和对其周围状态(lexical envi