Какова цель 3-го аргумента в обратном вызове для arr.forEach? [Дубликат]

this.replace( new RegExp( replaceThis, 'g' ), withThis );
4
задан Arashsoft 19 April 2017 в 15:44
поделиться

2 ответа

Если ваша функция обратного вызова была объявлена ​​в другом месте:

function forEachCallback(value, i, array) {
  // ...
}

Тогда он понятия не имеет, какой массив используется для:

someArray.forEach(forEachCallback);

Поскольку массив равен передан как последний аргумент, такой обратный вызов имеет к нему доступ.

8
ответ дан epascarello 20 August 2018 в 12:49
поделиться
  • 1
    Хорошо, функция знает о массиве, но для каких целей ? – mortb 21 April 2017 в 18:55
  • 2
    @mortb Обратный вызов может потребоваться значения из других ячеек в массиве при обработке каждой отдельной ячейки. Он может знать длину массива. Массив может иметь дополнительные нечисловые свойства, необходимые для выполнения обратного вызова. Есть много, много причин. Я не думаю, что я бы сказал, что это common , но это определенно случается иногда. – Pointy 21 April 2017 в 19:07
  • 3
    Хорошее разъяснение. – mortb 21 April 2017 в 19:44

Обратный вызов не обязательно должен быть в той же области, что и вызов forEach. В таком случае третий параметр гарантирует, что обратный вызов имеет некоторую ссылку на этот массив.

5
ответ дан Niet the Dark Absol 20 August 2018 в 12:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: