闭包问题

//以下打印结果是5
var arr = [1,2,3,4,5]
for(var i = 0; i < arr.length; i++){
  arr[i] = function(){
    alert(i)
  }
}
arr[1]()
//一下打印结果是 1(使用了闭包)
var arr = [1,2,3,4,5]
for(var i = 0; i < arr.length; i++){
  (function(index){
    arr[index] = function(){
      alert(index)
    }
  })(i)
}
arr[1]()
//以下打印结果是1 (使用了es6的let块级作用域)
var arr = [1,2,3,4,5]
for(let i = 0; i < arr.length; i++){
  arr[i] = function(){
    alert(i)
  }
}
arr[1]()

  

posted @ 2018-05-07 14:12  炫冰G爱  阅读(162)  评论(0编辑  收藏  举报