js中作用域,闭包问题

var data =[];
    for(var i=0;i<3;i++){        data[i] = function(i){            console.log(i);
        }
    }    
    data[0]();
    data[1]();
    data[2]();

1、请问一下为何执行data[0]时是undefined?
2、for循环执行后,会分配3个空间,放着3个function吗?如果是,i的值会传进去吗?
3、执行结果是undefined,是因为执行完for循环完,没有3个空间,都释放了吗?还是其他原因
4、如果像传进去i,要用闭包(我已经试过了),是闭包会分配空间一直不释放吗?有其他方法吗?


aluckdog
浏览 525回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript