<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,麻烦哪位给个详细的解释
很简单啊,因为
click
是响应事件啊,循环完之后才响应的,这个时候i就是5啊。你的程序是让点击的时候输出 i变量,程序可是很老实的呢。