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

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

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

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


缺点:

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


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


造成内存泄露的原因


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


相关文章
|
10月前
|
XML JSON 前端开发
前端深浅拷贝各有哪些方法,优缺点
前端深浅拷贝各有哪些方法,优缺点
89 0
|
3月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
4月前
|
存储 Java 程序员
结构体和类的内存管理方式在不同编程语言中的表现有何异同?
不同编程语言中结构体和类的内存管理方式既有相似之处,又有各自的特点。了解这些异同点有助于开发者在不同的编程语言中更有效地使用结构体和类来进行编程,合理地管理内存,提高程序的性能和可靠性。
69 3
|
5月前
|
安全
闭包有哪些优缺点呢
【10月更文挑战第12天】闭包有哪些优缺点呢
|
9月前
|
存储 Java
你对闭包的理解?优缺点?
你对闭包的理解?优缺点?
|
10月前
|
Java
什么是闭包 有哪些优缺点
什么是闭包 有哪些优缺点
258 0
|
10月前
|
自然语言处理 JavaScript 前端开发
JavaScript开发基础问题:如何理解闭包及其作用?
JavaScript开发基础问题:如何理解闭包及其作用?
76 5
|
10月前
闭包的理解 使用场景 优缺点 如何避免闭包
闭包的理解 使用场景 优缺点 如何避免闭包
94 0
如何理解ALU的优点?
ALU是组合逻辑电路!
274 0
|
设计模式 自然语言处理 JavaScript
闭包的原理、优点和缺点浅析
闭包指的是那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。- 《Javascript高级程序设计(第四版)》 注意:匿名函数不是闭包 一个函数和对其周围状态(lexical envi