前端面试题

2019-05-10  本文已影响0人  尼禄祭

刷题累积

1.以下代码运行结果是?

<html>
<body>
<button id="button1">Button1</button>
<button id="button2">Button2</button>
<button id="button3">Button3</button>
<script>
function buttonInit(){
    for(var i=1;i<4;i++){
        var b=document.getElementById("button"+i);
        b.addEventListener("click",function(){ alert("Button"+i);},false);
    }
}
window.onload=buttonInit;
</script>
</body>
</html>

点击每个button都会弹出“button4”
解答:
1.function中的function 称为闭包(有权访问另一个函数作用域中变量的函数)
2.闭包(每个点击函数)的作用域链中都指向着包含函数(buttonInit)的活动对象(i)
根据作用域链这种机制总结出:闭包只能取得包含函数中任何变量的最后一个值


上一篇下一篇

猜你喜欢

热点阅读