JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题

按值传参,调用此匿名函数返回内部匿名函数,按值传递参数,返回arr[i]数组,值传参,创建新数组,怎么解决这个问题

function createArray() { 

            var arr = new Array(); 

            for (var i = 0; i < 10; i++) { 

                arr[i] = function (num) { 

                    return function () { 

                        return num; 

                    } 

                } (i)

            }return arr;

             var funcs = createArray(); 

            for (var i = 0; i < funcs.length; i++) {

                document.write(funcs[i]() + "<br />"); 

            }

        }


慕婉清1013287
浏览 6393回答 1
1回答

莲_蓶濏__

// 没听明白你想说什么 改一下你发的代码 function createArray() { var arr = new Array(); for (var i = 0; i < 10; i++) { arr[i] = function (num) { return function () { return num; }; }(i); } return arr; } var funcs = createArray(); for (var i = 0; i < funcs.length; i++) { document.write(funcs[i]() + "<br />"); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript