关于......循环的困惑

时间:2015-10-29 20:55:46

标签: javascript ecmascript-6

所有

[UPDATE问题解决]我在这里遇到的问题是: 因此,如果我使用“in”,则func是索引号,而使用“of”func是函数。 更多详情请参阅Variables and scoping in ECMAScript 6

这是我ES6学习的第一个小时,我想知道为什么我不能使用如下语法:

for(func in funcs) { }

在:

  "use strict";

  var funcs = [];
  for(let i=0; i<10; i++){
    funcs.push(function(){
      console.log(i); 
    });
  }

  let func;
  for(func in funcs){
    func();
  }

总是报道:

Uncaught TypeError: func is not a function

1 个答案:

答案 0 :(得分:1)

for... in遍历对象键。从第一天起它就一直在使用JavaScript。

我认为你将它与for... of混淆,iterable objects是一个ES6功能,用于循环Babel.js REPL包括数组。

for(let func of funcs){
  func();
}

https://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx