Recientemente estuve revisando funciones puras de javascript. Descubrí que la función pura no debería tener dependencias globales, por lo que, de acuerdo con esto, encontré una duda que trato de explicar a continuación.
function parent(){ const count =1; const data = 30; function child (){ let sum = count + data; return sum; } function child2(count, data){ let final = count + data; return final; } }Entonces, de acuerdo con el fragmento anterior, ¿se puede llamar a la función child y child2 como función pura? Si la función secundaria se llama como función pura, es porque está tomando los parámetros de la función principal definida anteriormente.
La salida de ambas funciones será la misma, pero cuál se llamaría función pura. Esta puede ser una pregunta muy simple, pero cualquier ayuda será útil.
Solo se trata de alcance y variables.
function parent(){ // // Parent function scope let count = 1; let data = 30; function child(){ // // Child scope let sum = count + data; // // Change variable 'count' in PARENT scope count = 10; // // Return return sum; } // // Result will be 31 const res1 = child(); console.log(`Result 1: ${res1}`); function child2(count, data){ // // Child2 scope let final = count + data; // // Change variable 'count' in child2 (CURRENT) scope count = 20; // // Return return final; } // // Result will be 40 const res2 = child2(count, data); console.log(`Result 2: ${res2}`); // // Result will be 40 const res3 = child(); console.log(`Result 3: ${res3}`); } // Run parent parent();Una función pura es una función que no tiene ninguna dependencia y devolverá el mismo resultado con los mismos argumentos en todas partes . puede mover la función child2 a otro archivo y eso también funcionará, pero no puede hacer más funciones secundarias en ningún lado porque necesita las variables fuera de su alcance. entonces la respuesta es: la función secundaria no es pura y la función secundaria2 es pura.