Es6之闭包原理

76 阅读1分钟

今天谈谈闭包原理,如果不好请别喷!如果有误请留言,希望小伙伴们喜欢!

什么是闭包

闭包的定义:在一个函数内部的函数,可以使用其他函数的变量 个人的理解:一个函数可以调用函数外部变量的函数,函数和变量不会被垃圾回收机制回收。闭包是一种保护私有变量的机制,函数执行时形成私有作用域,保护私有变量不受外界影响。

闭包的应用场景?

防抖、节流、柯里化函数的应用,模块化,在Vue里的data(),方法里的变量,IIFE(自执行函数),getter和setter,迭代器

闭包有什么作用?

好处:

  • 1、创建私有空间
  • 2、延长局部变量的生命周期
  • 3、避免变量重复、污染

坏处

使函数内部的变量不能被内存释放,这些变量就会占用内存,内存消耗大,可能会导致内存泄露对内存形成巨大消耗,从而对性能形成巨大挑战。比如代码运行速度慢