深入理解JavaScript的闭包特性

  有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4。

   1. <!DOCTYPE HTML> 
2.
<html>
3.
<head>
4.
<meta charset="utf-8" />
5.
<title>闭包演示</title>
6.
<style type="text/css">
7. p
{background:gold;}
8.
</style>
9.
<script type="text/Javascript">
10. function init() {
11. var pAry = document.getElementsByTagName("p");
12. for( var i=0; i<pAry.length; i++ ) {
13. pAry[i].onclick = function() {
14. alert(i);
15. }
16. }
17. }
18. </script>
19.
</head>
20.
<body onload="init();">
21.
<p>产品 0</p>
22.
<p>产品 1</p>
23.
<p>产品 2</p>
24.
<p>产品 3</p>
25.
<p>产品 4</p>
26.
</body>
27.
</html>

it知识库深入理解JavaScript的闭包特性,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。