想明确下就是:
1、2的条件是形成了自由变量
闭包的形成和函数结构有关,而不是在函数执行调用的时候形成的是吗?比如说函数嵌套函数的结构,内层函数没有调用,但是不妨碍形成闭包。
只要外层函数被调用了,外层函数中声明的变量值就一直保存在内存中,与内层函数是否被调用无关。只是内层函数被调用的时候,外层函数申明的变量值和内层函数申明的遍量值都被保存在内存中是吗?
在没有形成自由变量的情况下,只是结构上函数嵌套函数,算是闭包吗?如下代码:
function fn1(){
var a=123;
function fn2(){
var b=0
alert(b)
}
}
相关分类