闭包

闭包是作用域应用的特殊情况 它有两种变现

1 . 函数作为返回值被返回

 function create()  {
         const a = 100;
         return function(){
         console.log(a)
      }
 }
const fn = create();
const a = 200;
fn(); //100

2 . 函数作为参数被传递

  function print(fn) {
    const a = 200;
    fn()
 }
const a = 100;
 function fn(){
   console.log(a)
 }
 print(fn) //100
总结:所有自由变量的查找是在函数定义的地方向上一级作用域查找 ,而不是在调用的地方。

tips: 闭包会引起内存泄漏,所以再函数结束前应该将其赋值为null

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。