• js 闭包


      闭包是指有权访问另一个函数作用域中的变量的函数。

      创建闭包的常见方式,就是在一个函数内部创建另一个函数。

      在另一个函数内部定义的函数会将包含函数(即外部函数)的活动对象添加到它的作用域链中。(函数作用域链详见:函数的执行过程

      匿名函数从 createComparisonFunction() 中被返回后,它的作用域链被初始化为包含 createComparisonFunction() 函数的活动对象和全局变量对象。这样匿名函数就可以访问在 createComparisonFunction() 中定义的所有变量。

      更重要是, createComparisonFunction() 函数在执行完毕后,起活动对象也不会被销毁,因为匿名函数的作用域链仍然在引用这个活动对象。

      换句话说:当 createComparisonFunction() 函数返回后,其执行环境的作用域链会被销毁,但它的活动对象仍然会留在内存中,直到匿名函数被销毁后,createComparisonFunction() 的活动对象才会被销毁。

      闭包会携带包含它的函数的作用域,因此会比其他函数占用更多的内存。

  • 相关阅读:
    console.log眼见不一定为实
    播放器
    js变量
    js函数
    js数组
    设置默认浏览器
    this.$nextTick()用法
    进程理论+创建进程的两种方法+进程join方法+进程间数据相互隔离
    风险可视化项目记录1
    HTML笔记
  • 原文地址:https://www.cnblogs.com/guofan/p/14578059.html
Copyright © 2020-2023  润新知