什么是闭包?有什么作用?
MDN:闭包(closure)是指那些能够访问独立变量的函数(变量在本地使用,但定义在一个封闭的作用域中)。换句话说,这些函数可以“记忆”它被创建时候的环境。
- 作用:利用闭包可以访问它所在函数的作用域中的变量
function f1(){
var a=1;
function f2(){
console.log(a);
}
return f2;
}
var c=f1();
c();
上面代码中的f2
就是闭包,利用f2
使得f1
中的变量对外可见;
- 可以使这些变量的值始终保持在内存中:
var fnArr = [];
for(var i=0; i<10; i++){
(function(){
var a=i;
fnArr[i]=function(){
return a;
}
})()
}
console.log ( fnArr[3]() )```
#setTimeout 0 有什么作用?
![setTimeout.PNG](http://upload-images.jianshu.io/upload_images/2150964-15ff4a29a6417fe7.PNG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
seTimeout () 可以将一段代码在<b>给定环境</b>中最后并且延时执行,延时时间视第二个参数而定。如果第二个参数为0,表示等其他代码执行完之后立即执行。<b>这样就可以改变代码的执行顺序</b>.
#[代码](http://book.jirengu.com/jirengu-inc/jrg-renwu6/homework/%E9%83%AD%E5%BF%97%E6%98%8E/%E4%BB%BB%E5%8A%A120/code20.js)