闭包
1、含义:
函数执行形成一个私有上下文,此上下文中的私有变量和上下文以外的变量互不干扰,即保护当前上下文中的私有变量,把函数的这种保护机制称为闭包。【闭包不是具体的代码,是一种保护机制】
函数执行会形成一个私有上下文,如果私有上下文中的某些内容(一般指堆内存地址)被上下文以外的一些事物(例如:变量/事件绑定等)所占用,则当前上下文不能出栈(浏览器的垃圾回收机制GC所决定的) "闭包"机制=>形成一个不被释放的上下文.
弊端: 大量使用闭包,会导致栈内存太大,页面渲染变慢,性能受到影响 会导致栈溢出或者内存泄漏
2、作用:
1)保护:保护私有上下文中的"私有变量"和外界隔离
2)保存 : 上下文不被释放,上下文中的"私有变量"和"值都会被保存",可以供给其他上下文使用