搜索

首页  >  问答  >  正文

javascript - 源于闭包的一个问题

<p>产品一</p>     
<p>产品二</p>     
<p>产品三</p>     
<p>产品四</p>     
<p>产品五</p>   
<script type="text/javascript">
    var pAry = document.getElementsByTagName("p");
    function init0() {           
        for( var i=0; i<pAry.length; i++ ) {     
            pAry[i].onclick = function() {      
                console.log(i);   
            }     
        }     
    };
</script>

这个闭包的经典案例为什么输出的i都是5,麻烦哪位给个详细的解释

PHP中文网PHP中文网2897 天前291

全部回复(1)我来回复

  • 怪我咯

    怪我咯2017-04-10 14:44:06

    很简单啊,因为click是响应事件啊,循环完之后才响应的,这个时候i就是5啊。你的程序是让点击的时候输出 i变量,程序可是很老实的呢。

    回复
    0
  • 取消回复