javascript - 源于闭包的一个问题
PHP中文网
PHP中文网 2017-04-10 14:42:06
0
1
303
<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中文网

认证0级讲师

全部回覆(1)
刘奇

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板