任务20:闭包、定时器

什么是闭包? 有什么作用?
一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。闭包的特点:

  1. 作为一个函数变量的一个引用,当函数返回时,其处于激活状态。
  2. 一个闭包就是当一个函数返回时,一个没有释放资源的栈区。

作用:可以通过闭包,让外部访问函数体内变量。

setTimeout 0 有什么作用

Paste_Image.png

作用:改变执行顺序

下面的代码输出多少?修改代码让fnArr[i]()输出 i。使用两种以上的方法

Paste_Image.png

代码输出10
第一种:


Paste_Image.png

第二种:

Paste_Image.png

使用闭包封装一个汽车对象,可以通过如下方式获取汽车状态

Paste_Image.png
Paste_Image.png

写一个函数使用setTimeout模拟setInterval的功能

Paste_Image.png

写一个函数,计算setTimeout平均[备注:新加]最小时间粒度

Paste_Image.png

下面这段代码输出结果是? 为什么?

Paste_Image.png
Paste_Image.png

下面这段代码输出结果是? 为什么?

Paste_Image.png

会停留在while(flag){},一直循环。
因为setTimeout(0)语句放在最后执行,而flag初始值为true,while循环一直执行。

下面这段代码输出?如何输出delayer: 0, delayer:1...(使用闭包来实现)

Paste_Image.png

输出:


Paste_Image.png

因为setTimeout(0)语句最后执行,所以先执行循环打印,而i在setTimeout中未定义,所以获取for循环执行完后的i,此时i=5;循环了5次,所以打印5次。

修改:


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

推荐阅读更多精彩内容

  • 问题 一、什么是闭包? 有什么作用? 1.什么是闭包①JavaScript高级程序设计第三版定义闭包是指有权访问另...
    鸿鹄飞天阅读 485评论 0 0
  • 问答 什么是闭包? 有什么作用答:“官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一...
    饥人谷_桶饭阅读 232评论 0 0
  • 问题 1. 什么是闭包? 有什么作用? 概念:闭包就是能够读取其他函数内部变量的函数。由于在Javascript语...
    小木子2016阅读 355评论 0 0
  • 问题 什么是闭包? 有什么作用答案: 闭包是指有权限访问另一个函数作用域的变量的函数,创建闭包的常见方式就是在一个...
    嘿菠萝阅读 412评论 0 0
  • 1.什么是闭包? 有什么作用? 闭包的英文单词是closure,是指有权访问另一个函数作用域中变量的函数。 闭包在...
    GarenWang阅读 382评论 0 0