闭包是在什么时候产生的?

闭包是在什么时候产生的?是函数定义时还是执行时?

===补充=====
我的理解

===补充=====
下面的截图来自《你不知道的JavaScript(上卷)》,click绑定的回调中并没有自由变量,为什么还说是闭包?

图片描述

阅读 6.4k
3 个回答

作用域是在函数定义的时候就产生了,对外层作用域内变量的引用产生了闭包

闭包,实际上就是指闭包函数,指的是一个函数使用了函数作用域外的变量时,该函数被称之为闭包函数。比如说:

let name = 'test';
// 这个函数就可以被称为 闭包函数
// 无论是否被调用
function say(){
    // 引用了 全局变量 name
    console.log(name);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题