闭包
本文只肤浅说明我对闭包的认识,不涉及其原理。
闭包有以下特性:
-
函数中的变量在函数执行后仍然存在,可供其他函数使用
-
一个函数中存在函数就会出现闭包
如下面的例子:将代码保存为closures.html
,然后使用浏临览器打开
<script>
function add(x){
return function muli(y){alert(x*y);};
}
var add8 = add(8);
</script>
<input type='button' value='test' onClick='add8(100)'/>
我使用Firefox打开,运行结果如下:
当执行完add8 = add(8)后,add(x)函数被执行了,但是参数x=8仍然存在。执行add8(100)时,参数x,也就是8被用来运算。
(完)