c变量到底是自己没销毁呢,还是被复制到闭包中保存了一份?
如果是前者,为何alert(c)显示未定义?
<script type="text/javascript">
function a(b){
var c=30;
setTimeout(m,1000);
function m( ){
alert(c);
}
}
a(2);
alert(c);
</script>
如果是前者,为何alert(c)显示未定义?
<script type="text/javascript">
function a(b){
var c=30;
setTimeout(m,1000);
function m( ){
alert(c);
}
}
a(2);
alert(c);
</script>
setTimeout(m,1000);
function m( ){
alert(c);
}
中被引用了,所以没有被销毁。。
而外面的a函数外面alert(c)是因为,当前作用域中访问不到c变量,,所以显示未定义