javascript闭包函数概念理解
1、js中什么是函数实例?就是js解释引擎读取函数脚本代码后在内存中产生的一段数据。
2、js中什么是函数引用?
就是指向函数实例那段内存数据的指针。同一个实例可以有多个引用,只要该实例还有指向它的引用,占用的内存就不会释放。
3、js中什么是闭包?
就是函数实例执行过程中动态产生的一块新的内存里的数据集。最初闭包必须由函数实例被调用(也就是函数实例执行)时才会由Js解释引擎动态生成;既然闭包也是一段内存区域,当没有依赖于这个内存中数据的引用时,才会被释放,也就是闭包理论上才会被销毁。记住闭包是执行期的概念!
4、js闭包里有什么玩意?
上下文件结构Context,调用结构Callobject,其他
5、Js中函数实例,函数引用,闭包关系?
函数实例被调用,总是会产生一个新的闭包,但是上次调用产生的闭包是否已经销毁取决于那个闭包中是否有被其他闭包引用的数据。
函数实例可以有多个函数引用,而只要存在函数实例的引用,该实例就不会被销毁。而闭包是函数实例被调用是产生的,但不一定随着调用结束就销毁,一个函数实例可以同时拥有多个闭包。
6、闭包有些什么产生情形呢?
全局闭包;具名函数实例产生的闭包;匿名函数实例产生的闭包;通过new Function(bodystr)产生的函数实例的闭包;通过with语句所指示的对象的闭包。
页:
[1]