任务20

什么是闭包?有什么作用?

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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问题 一、什么是闭包? 有什么作用? 1.什么是闭包①JavaScript高级程序设计第三版定义闭包是指有权访问另...
    鸿鹄飞天阅读 475评论 0 0
  • 问答 什么是闭包? 有什么作用答:“官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一...
    饥人谷_桶饭阅读 229评论 0 0
  • 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 一、变量...
    zock阅读 1,084评论 2 6
  • ● 闭包基础 ● 闭包作用 ● 闭包经典例子 ● 闭包应用 ● 闭包缺点 ● 参考资料 1、闭包基础 作用域和作...
    lzyuan阅读 959评论 0 0
  • 老猫,你老了。 你或许知道自己大限将至。 一改往日闲散, 开始四处走动,闻闻家门口的香樟树叶 时而与凉拖打架。...
    阡陌流年丶阅读 294评论 0 0