今天谈谈闭包原理,如果不好请别喷!如果有误请留言,希望小伙伴们喜欢!
什么是闭包
闭包的定义:在一个函数内部的函数,可以使用其他函数的变量 个人的理解:一个函数可以调用函数外部变量的函数,函数和变量不会被垃圾回收机制回收。闭包是一种保护私有变量的机制,函数执行时形成私有作用域,保护私有变量不受外界影响。
闭包的应用场景?
防抖、节流、柯里化函数的应用,模块化,在Vue里的data(),方法里的变量,IIFE(自执行函数),getter和setter,迭代器
闭包有什么作用?
好处:
- 1、创建私有空间
- 2、延长局部变量的生命周期
- 3、避免变量重复、污染
坏处
使函数内部的变量不能被内存释放,这些变量就会占用内存,内存消耗大,可能会导致内存泄露对内存形成巨大消耗,从而对性能形成巨大挑战。比如代码运行速度慢