Estoy tratando de entender esta versión memorizada / recursiva de fibonacci:
function fib(n, memo = {}) { if (n in memo) return memo[n]; if (n === 1 || n === 2) return 1; memo[n] = fib(n - 1, memo) + fib(n - 2, memo); return memo[n] }Lo que no entiendo es cómo los ámbitos externos pueden acceder a la información guardada en un objeto de memo local desde llamadas/ámbitos recursivos internos . Es decir, si una función se llama a sí misma y luego guarda información en la nota, ¿cómo se puede actualizar el objeto de la nota en el ámbito superior (desde donde se realizó la llamada recursiva) si la actualización se realizó en un ámbito diferente?
Al llamar a una función dentro de otra función, la primera función no tiene acceso a las variables locales de la última función. Cuando se llama a una función recursivamente, me gusta pensar en ello como si una función estuviera llamando a una función completamente diferente. Esta forma de pensar ha sido útil, pero quizás en este caso sea engañosa/equivocada.
Gracias por la ayuda de antemano frens!