Skip to content

Cercle Blog

We've got something interesting

Descripción de la memoización En JavaScript

Posted on septiembre 26, 2021 By admin No hay comentarios en Descripción de la memoización En JavaScript

Qué es la memoización

La memoización es una técnica de optimización que acelera las aplicaciones almacenando los resultados de costosas llamadas a funciones y devolviendo el resultado almacenado en caché cuando se vuelven a suministrar las mismas entradas.

Tomemos un ejemplo, tenemos este método para calcular factorial de un número usando recursión.

function recursiveFac(n) { if (n === 0) { return 1 } else { return n * recursiveFac(n - 1) }}

Esta función funcionará bien, pero a largo plazo, será costosa. digamos que si llama primero a memoFac (7) y luego a memoFac(8), sin una caché para almacenar nuestros valores calculados previamente, tenemos que repetir todo el proceso, devolviendo la función otras 7 veces.

const cache = {}function memoFac(n) { if (cache) { return cache } else { if (n === 0) { cache = 1 } else { cache = n * memoFac(n - 1) } return cache}

Así que tenemos otra función memoFac () y un objeto de caché global que almacenará el resultado de esa clave.
Ahora, si llamamos a memoFac(8) después de llamar a memoFac(7), ya hemos guardado nuestro valor calculado para factorial(7) en nuestro objeto «cache», que se ha movido fuera de la función para retener sus cálculos de almacenamiento en caché. Por lo tanto, solo necesitamos llamar a la función una vez, calcular 8 * memoFac(7), que nos envía directamente a nuestra «caché» para recuperar el valor almacenado en caché. ¡Órale!

Pero espere, si la memoización sigue el mismo formato general (recuperar valores de una caché en el ámbito externo de la función, o calcular el valor utilizando la función de cierre anónimo), ¿no podríamos escribir una función de memoize general? ¡Sí podemos!

El concepto de memoización en JavaScript se basa principalmente en dos conceptos.

  1. Cierres
  2. Funciones de Orden Superior
function memoizerHoc(fun){ let cache = {} return function (n){ if (cache != undefined ) { return cache } else { let result = fun(n) cache = result return result } }}

Aquí tenemos la función ESPECIAL memoizerHoc () y una caché de variables locales a la que se puede acceder dentro de la función devuelta (closure).

Articles

Navegación de entradas

Previous Post: La Dieta de los Neandertales – De los Dientes a las Tripas-SAPIENS
Next Post: DIY Spinning Nerf Target

More Related Articles

Nevada City Aprueba Por Unanimidad La Aplicación Policial De Las Directrices Sobre Máscaras Articles
Preservar el Cabello Natural en Alta Humedad Articles
Lo que debe Saber Sobre el Dolor neuropático Articles
Neosporosis: ARS del USDA Articles
Propiedades mecánicas de materiales nanocristalinos Articles
Negocio de intermediarios: Cómo Comenzar En Menos De 24 Horas Articles

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Archivos

  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • junio 2021
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Meta

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org

Copyright © 2022 Cercle Blog.

Powered by PressBook Blog WordPress theme