猿问

高程中的闭包

function createFunctions() {

    var result = new Array();

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

        result[i] = function(){

                return i;

        };

    }

    return result;

}


alert(createFunctions());

alert(result[1]());

alert(createFunctions()[1]());


function createFunctions() {

    var result = new Array();


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

        result[i] = function(num){

            return function(){

                return num;

            };

        }(i);

    }

    return result;

}


alert(createFunctions());

alert(createFunctions()[]);

问题1:这两个函数应该如何调用,为什么我都调用不对。。。。函数1应该看到10; 函数2应该看到0,1,2......9
问题2:为什么函数2立即调用就能产生0-9的输出结果。

弑天下
浏览 341回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答