3

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

1)第二个参数是做什么用的?谁能举个例子?
2) 函数(第一个参数)是否总是有 3 个参数:条目、索引和数组?
3)还有一些网站解释Array.prototype.forEach()。这是一样的forEach()还是有什么不同?

这是我的jsfiddle

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

4

2 回答 2

3
  1. 第二个参数用于this在函数上下文中设置。一个例子

    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. 他们是一样的。
于 2013-11-06T04:42:04.923 回答
0

1) forEach 的第二个参数允许您控制“this”变量表示您传递给 forEach 第一个参数的函数内部

2)您的函数将始终传递这 3 个参数,但您可以仅使用第一个 arg 或前两个 args 定义您的函数(如果您只需要这些参数)

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

于 2013-11-06T04:39:54.500 回答