闭包是指一个函数, 其可以调用另一个函数作用域中的变量;
闭包只能取得包含函数中任何变量的最后一个值, 如:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- </head>
- <body>
- <ul>
- <li>click me</li>
- <li>click me</li>
- <li>click me</li>
- <li>click me</li>
- </ul>
- <script type="text/javascript">
- var elements=document.getElementsByTagName('li');
- var length=elements.length;
- for(var i=0;i<length;i++){
- elements[i].onclick=function(){
- alert(i);
- }
- }
- </script>
- </body>
- </html>
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- </head>
- <body>
- <ul>
- <li>click me</li>
- <li>click me</li>
- <li>click me</li>
- <li>click me</li>
- </ul>
- <script type="text/javascript">
- var elements=document.getElementsByTagName('li');
- var length=elements.length;
- for(var i=0;i<length;i++){
- elements[i].onclick=function(num){
- return function(){
- alert(num);
- }
- }(i)
- }
- </script>
- </body>
- </html>
来源: http://www.bubuko.com/infodetail-2591070.html