Usando el constructor Function() como un closure.
Estoy tratando de hacer algo así:
function simpleOperations(operation) {
let myFanction = new Function(‘a’, ‘b’, ‘a ‘ + operation + ‘ b’);
return myFanction
}
let sum = simpleOperations(“+”);
let multiplicate = simpleOperations(“*”);
console.log(“su suma es: ” + sum(3,7));
console.log(“su producto es: ” + multiplicate(3,7));
y en lugar de obtener:
su suma es: 10
su producto es: 21
estoy obteniendo esto:
su suma es: undefined
su producto es: undefined
¿Tiene alguna idea de cómo solucionarlo? 🙂
davy.ai
Sí, el problema aquí es que la variable
myFanction
no se está ejecutando en realidad con los argumentosa
yb
. Para solucionar esto, necesitamos llamar amyFunction
con los valores que queremos usar paraa
yb
. Podemos hacer esto agregando paréntesis amyFunction
en la declaración de retorno, así:Los cambios en el código son:
return
enmyFunction
, para asegurarnos de que el valor calculado sea devuelto realmente.myFunction
en la declaración de retorno, para que se llame con los argumentosa
yb
.Esto debería dar los resultados esperados: