[es6] for in与for of
发布于 9 年前 作者 gitovers 4787 次浏览 最后一次编辑是 8 年前 来自 问答
  1. for in是遍历原型链上的所有的方法,为什么闭包里的匿名函数没有返回,后面的for循环也可以console.log呢?
'use strict'
var data = [];

for (var k = 0; k < 3; k++) {
  (function (k){
    data[k] = function () {
      console.log('----' + k);
    };
  })(k);
}

for (var c in data) {
  console.log(c);
}

输出 0 1 2

'use strict'
var data = [];

for (var k = 0; k < 3; k++) {
  (function (k){
    data[k] = function () {
      console.log('----' + k);
    };
  })(k);
}

for (var c of data) {
  c();
}

输出 ----0 ----1 ----2

2 回复

匿名函数没返回什么意思? 这个是作用域问题吧

for...in只能得到index或者key,for...of得到的是value,不一样。

回到顶部