闭包定义和调用及其作用机制
发布时间
阅读量:
阅读量
学习笔记的来源为渡一教育所推出的Web前端百大项目课程。
function test() {
var arr=[];
for(var i=0;i<10;i++){
arr[i]=function() {
document.write(i+" ");
}
}
return arr;
}
var myArr=test();
for(var j=0;j<10;j++){
myArr[j]();
}
最终的执行结果为:10个10
这是为何呢?
这是因为产生了闭包,当整个函数运行结束时,变量i的值已变为10。同时,由于函数test仅完成了定义而未立即执行,其具体实现是在函数体外部完成的,因此此时i的值为10。
换句话说:
需要明确的是,函数的实际运行过程始终发生在其定义的具体实现部分。
AO{
arr[0]:function (){}
arr[1]:function (){}
全部评论 (0)
还没有任何评论哟~
