var arr = [2, 3];

const addNum = (num) => console.log(num + 2); 

arr.forEach(addNum);

Result in the console: 
// 4
// 5

En el código anterior, utilicé el método forEach y, como función de devolución de llamada, utilicé la función addNum. Pero, en la función addNum no pasé ningún argumento y todavía funciona, ¿cómo es que?

1
Syed Nouman 30 may. 2020 a las 08:11

3 respuestas

La mejor respuesta

Debido a que foreach recibe una devolución de llamada (currentValue [, index [, array]]) , en este caso, currentValue es num

1
Thành Trung Phạm 30 may. 2020 a las 05:31
arr.forEach(callback(currentValue [, index [, array]])[, thisArg])

Porque el método forEach() ejecuta una función proporcionada una vez para cada elemento de la matriz.

0
Himanshu Pandey 30 may. 2020 a las 05:14

La función forEach tiene un argumento que toma una función .

La documentación especifica la firma como:

arr.forEach(callback(currentValue [, index [, array]])[, thisArg])

Puedes dar esa función como quieras. Podría estar predefinido, o podría estar en línea, como en forEach(function(x) { ... }) o forEach(x => ...).

Tiene mucha flexibilidad en cómo llama a funciones como forEach ya que generalmente siguen las mismas reglas. Este es un patrón que verás mucho en JavaScript.

2
tadman 30 may. 2020 a las 05:13