其基本原理就是JavaScript的作用域链,下面以对比的方式来展示一下函数级作用域和块级作用域。

函数级作用域

var fns = [];
for (var i = 0; i < 5 ; i++){
//fns.push(() => {console.log(i)});
fns.push(function(){
console.log(i)
})
}
fns.forEach(fn => fn());

运行结果是

5
5
5
5
5

块级作用域

var fns = [];
for (let i = 0; i < 5 ; i++){
//fns.push(() => {console.log(i)});
fns.push(function(){
console.log(i)
})
}
fns.forEach(fn => fn());

运行结果是

0
1
2
3
4

最新文章

  1. oracle数据库表的导入导出cmd命令大全
  2. dos 操作显示 &gt; nul 2&gt;nul
  3. lua下的简单OO实现
  4. zookeeper的安装(图文详解。。。来点击哦!)
  5. angular ng-repeat+sortable 拖拽demo
  6. grunt &lt;% %&gt;模板和使用配置文件
  7. Asp.Net中的获取Web.config中设置的参数!(前后台的代码示例)
  8. Python 基础【第八篇】变量
  9. Android UI ActionBar功能-在 Action Bar 上添加按钮
  10. C#Base64加密
  11. the security settings could not be applied to the database(mysql安装error)【简记】
  12. vue的计算属性computed和监听器watch
  13. Educational Codeforces Round 47 (Rated for Div. 2)E.Intercity Travelling
  14. 小妖精的完美游戏教室——人工智能,A*算法,引言
  15. SQL数据库基础知识
  16. js日常
  17. JAVA-JSP内置对象之session范围
  18. 第二次安装docker时,报Transaction check error的解决方法
  19. Python 编程:从入门到实战 读书笔记
  20. Qt多线程-QtConcurrent并行运算高级API

热门文章

  1. Linux中文件上传使用rz
  2. Redis学习笔记(十) 命令进阶:事务操作
  3. asp.net 后台给前台控件添加及设置属性
  4. PHP 环境搭建工具
  5. Python 接口类或抽象类 反射
  6. CF949B A Leapfrog in the Array 思维题,推理
  7. crm需求分析步骤
  8. 密信(MeSince),将取代传统电子邮件
  9. 嵌入式平台选择:树莓派 or BeagleBone Black(BBB)
  10. IOS - autoresizingMask