闭包:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures

闭包是函数和声明该函数的词法环境的组合。

let:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/let

let 语句声明一个块级作用域的本地变量,并且可选的将其初始化为一个值。

例:闭包和 let 修正匿名函数访问的变量

function foo(){
var bar = [];
for (var index = 0; index < 9; index++) {
bar[index] = function(){
return index;
}
}
return bar;
} function foo_closures(){
var bar = [];
for (let index = 0; index < 9; index++) {
(bar[index] = function(){
return index;
})()
}
return bar;
} function foo_let(){
var bar = [];
for (let index = 0; index < 9; index++) {
bar[index] = function(){
return index;
}
}
return bar;
} for(var d of foo()){
console.log(d());// 9个9
} for(var d of foo_closures()){
console.log(d());// 1,2,...8
} for(var d of foo_let()){
console.log(d());// 1,2,...8
}

最新文章

  1. Go语言 模板的使用(二)
  2. kali driftnet
  3. iOS设计模式笔记
  4. LINUX运维实战案例之文件已删除但空间不释放问题的分析与解决办法
  5. u3d_Shader_effects笔记2 自定义surfaceDiffuseLight
  6. Spark1.0.x入门指南
  7. MYSQL系列1_MySQL的安装,可视化工具的使用,以及建库建表等
  8. PHP中如何设置error_reporting错误报告级别
  9. JS自执行函数的几种写法
  10. WPF 利用子线程弹出子窗体的研究
  11. 总结的OSM 地图相关的分析
  12. MongoDB【第二篇】集群搭建
  13. 利用HTML5判断用户是否正在浏览页面技巧
  14. 前端-Useful Js Plugins
  15. C#之Winform跨线程访问控件
  16. SSH框架用法,及作用(在一位菜鸟使用半年之后归纳的总结)
  17. layui内部使用jQuery
  18. Linux:去除每一行行首的空格
  19. Python1 简介及安装、基础
  20. HDU 1671 Phone List (qsort字符串排序与strncmp的使用 /字典树)

热门文章

  1. python3:tuple元组
  2. thinkphp 多条件联合查询 where例句
  3. centos7下通过LVS的DR模式实现负载均衡访问
  4. [HAOI2010]软件安装(Tarjan,树形dp)
  5. WebApi 接口参数:传参详解
  6. 安装php多进程模块pcntl
  7. 跨域 (1) jsonp 跨域
  8. ESP8266-模拟输出(PWM)
  9. 13. ClustrixDB 基于时间点恢复
  10. Cassandra 安装部署