今天琢磨了一天的作用域和闭包这两个概念,虽然理解的很浅,但还是想分享出来,希望看到的大神们能多多指正。
作用域包含了全局作用域和局部作用域,闭包也算作用域的一种;
闭包的概念:
1.函数嵌套函数;
2.子函数能引用父函数的局部变量和参数;
3. 变量和参数不会被垃圾回收机制回收;(注:如果是两个函数相互调用,第三个函数不参与,是会被垃圾回收机制回收,像闭包这种两个函数相互调用,且会被外部函数调用的,不会被垃圾回收机制回收);
<script>
function aaa(){ //父函数
var a=12;
function bbb(){ //子函数
alert(a);
}
return bbb;
}
var c=aaa();
c();
</script>
这个简单而典型的闭包:子函数引用了父函数的局部变量;var c其实就指向bbb()函数,最后在外部调用;
来源:oschina
链接:https://my.oschina.net/u/1865719/blog/411886