CNode

[es6] for in与for of

问答
Ggitovers发布于10 年前最后回复10 年前2 回复5264 浏览0 收藏
  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)

Z
zyvas#1·10 年前

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

S
SinalVee#2·10 年前

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

参与回复
登录后即可参与回复。登录