js和C#中都有闭包的概念,闭包本质上是一个对象,是指有权访问另一个局部作用域中的变量的对象(或函数,在C#中是委托).这个对象和函数/方法有关: 在js中,闭包是由于函数引用了局部变量形成的.在C#中,是由于匿名函数(本质上是委托)的存在而产生的和js原理差不多的闭包. 要了解js中的闭包,先要了解几个概念: 作用域链:而有关如何创建作用域链以及作用域链有什么作用的细节, 对彻底理解闭包至关重要. 当某 个函数第一次被调用时,会创建一个执行环境(execution context)及相应的作用…