<html>
<script>
function aaa(s){
return function(){
alert(s);
}
}
setTimeout(aaa('kkkkkkk'),100);
</script>
</html>
分析上面的代码:setTimeout接收的应该是一个无参的function,不能接收参数,而这段代码很巧妙的用闭包的方法传递了一个参数.
顺便总结一下什么是闭包,什么时候用.
闭包:
子函数可以使用父函数中的局部变量.
什么时候用:
保护函数变量安全.因为闭包中的变量是内存维护,其它函数引用不到.