Aquí está mi ejemplo de código:
let arr = [18, 23, 44, 50]; let obj = { name: 'Kate', }; arr.forEach(let func = function(value) { console.log(`${this.name} is ${value} years old`); }, obj); //SyntaxError Por lo tanto, parece que podemos usar en el método forEach() solo la declaración de función y la función de flecha. ¿Tengo razón o me estoy perdiendo algo?
El uso de let , var o const donde se espera una función de devolución de llamada es SyntaxError . Puede soltar let y el código funcionará bien o puede declarar la función fuera de forEach y llamarla dentro de forEach de la siguiente manera:
let func = function(value) { console.log(`${this.name} is ${value} years old`); }; arr.forEach(func, obj); En el siguiente código, muestro el código original que proporcionó sin la palabra clave let en la llamada forEach para mostrar que funciona. También agregué la declaración de función sugerida y la correspondiente llamada forEach .
let arr = [18, 23, 44, 50]; let obj = { name: 'Kate', }; console.log('\tfunc'); arr.forEach(func = function(value) { console.log(`${this.name} is ${value} years old`); }, obj); console.log('\tfunc2'); let func2 = function(value) { console.log(`${this.name} is ${value} years old`); }; arr.forEach(func2, obj);Puede usarlo sin la asignación. El nombre ( func ) es opcional.
let arr = [18, 23, 44, 50]; let obj = { name: 'Kate', }; arr.forEach(function func(value) { console.log(`${this.name} is ${value} years old`); }, obj);