js高级_111、闭包理解
1,如何产生闭包?
当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量时,就产生了闭包。
2,闭包到底是什么?
使用chrom调试查看
理解一:闭包是嵌套的内部函数
理解二:包含引用变量(函数)的对象
注意:闭包存在于嵌套的内部函数中
3,产生闭包的条件
函数嵌套
内部函数引用了外部函数的数据(变量/函数)
内部函数调用不会产生新的闭包,只有外部被调用才会产生新的闭包。
<script>
function fn1(){
var a=2;
function fn2(){//执行函数定义就会产生闭包,执行函数定义不是指调用函数。
console.log(a);
}
fn2();
}
fn1();
</script>