A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗玉宁 中级黑马   /  2013-3-21 01:05  /  1183 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 罗玉宁 于 2013-3-21 17:57 编辑

为什么输出的全是5 而不是12345?
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4.   <title>匿名函数</title>
  5.   <meta name="Generator" content="EditPlus">
  6.   <meta name="Author" content="">
  7.   <meta name="Keywords" content="">
  8.   <meta name="Description" content="">
  9. </head>
  10. <script type="text/javascript" >
  11. function box() {
  12.         var arr = [];
  13.         
  14.         for (var i = 0; i < 5; i ++) {
  15.                 arr[i] = function () {                                        //arr[0] = 0,arr[1] = 1 .... arr[4]  = 4
  16.                         return i;
  17.                 };
  18.         }
  19.         return arr;
  20. }
  21. var b = box();
  22. for (var i = 0; i < 5; i ++) {
  23.         alert(b[i]());
  24. }
  25. </script>
  26. <body>
  27.   
  28. </body>
  29. </html>
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

2 个回复

倒序浏览
稍微改了下,可以满足要求,但是输出是从0-4,不会是1-5(1-5改下循环即可).如有错误,欢迎拍砖指正哈。
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3.     <head>
  4.         <title>匿名函数</title>
  5.         <meta name="Generator" content="EditPlus">
  6.         <meta name="Author" content="">
  7.         <meta name="Keywords" content="">
  8.         <meta name="Description" content="">
  9.     </head>
  10.     <script type="text/javascript">
  11.         
  12.         function box(){
  13.         
  14.             var arr = [];
  15.             var i = 0;
  16.             
  17.             for (var i = 0; i < 5; i++) {
  18.             
  19.                 arr[i] = function(i){
  20.                                         return i;
  21.                                 }(i);   //需要传入值才能返回
  22.                
  23.             }
  24.             
  25.             return arr;
  26.             
  27.         }
  28.         
  29.         var b = [];
  30.                 b = box();
  31.         
  32.         for (var i = 0; i < 5; i++) {
  33.         
  34.             alert(b[i]);  //输出数组的值而不是数组本身
  35.             
  36.         }
  37.     </script>
  38.     <body>
  39.     </body>
  40. </html>
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
记得及时处理帖子哦,继续追问,或将分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马