¿Cuál es el valor del resultado constante? mi conjetura fue (3, 1). Esto es confuso para mí, por lo que agradecería cualquier ayuda.
function makeCounter() { let count = 0; return function() { count += 1; return count; } } const counter1 = makeCounter(); const counter2 = makeCounter(); counter1(); counter1(); const c1 = counter1(); const c2 = counter2(); const result = [c1,c2]; console.log(result)Sí, [3, 1] es correcto. (Puede seleccionar 'ejecutar fragmento de código' para verlo en acción).
La razón aquí es que llamar a makeCounter() devuelve una función , con una variable de count local inicializada como cero.
Cada vez que llama a la función devuelta por makeCounter() (es decir, counter1 o counter2 ), la cuenta de ese count se incrementa.
counter1() se llama 3 veces y counter2() se llama una vez. Y se juntan en una matriz al final, así [3, 1].