正确使用JavaScript forEach

时间:2013-11-06 04:27:17

标签: javascript foreach

我无法清楚地理解javascript中forEach()的参数的用法。 (我理解第一个是将在数组的每个元素上调用的函数。) 以下是我的问题:

1)第二个参数用于什么?谁能举个例子?
2)函数(第一个参数)是否总是有3个参数:entry,index和array?
3)还有一些网站解释Array.prototype.forEach()。这是forEach()相同还是有什么不同?

这是我的jsfiddle

我徒劳地试图在网上搜索一个简单的解释!谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

  1. 第二个参数用于在函数上下文中设置thisAn example

    var person = {
        name: 'Bob',
        age: 30
    };
    
    var arr = ["foo", "moo", "koo"];
    
    arr.forEach(function(entry, index, array) {
        console.log(this.name + ' says ' + entry);
    }, person);
    
  2. 您将始终获得所有这3个,但如果您不需要它们,则无需参考它们。

  3. 他们是一样的。

答案 1 :(得分:0)

1)forEach的第二个arg允许你控制'this'变量代表你传递给forEach的第一个参数的函数内部

2)你的函数将永远传递给那3个参数,但你可以只用第一个arg或前两个参数来定义你的函数,如果你需要它们的话

3)是的,当人们谈论forEach时,他们在技术上指的是Array.prototype.forEach()。 (在你的jsfiddle中,你在一个数组对象上调用forEach)