La herencia perezosa es un patrón de diseño utilizado en la programación informática de JavaScript .
Designa un enlace pospuesto de un objeto con su prototipo (clase) hasta que sea necesario. Si se usa correctamente, este enfoque puede aumentar la eficiencia, simplicidad y flexibilidad del código basado en OOP escrito con JavaScript.
Dado que la herencia diferida se llama solo una vez en el momento de la creación de la primera instancia de objeto, parece lógico combinar el proceso de creación de prototipos de clase con la resolución de las dependencias necesarias de esa clase.
Las instancias de objetos en herencia diferida se crean en modo "mixto": en la primera invocación, se usa una fábrica para modificar el prototipo de clase que luego se usa para la creación de instancias de objetos posteriores. En otras palabras, el proceso de construcción de prototipos también permite cargar scripts (si no se cargaron antes) de qué clase particular depende.
Este enfoque del apoyo a la herencia tiene los siguientes beneficios:
- La herencia diferida tiene los mismos beneficios que las características clásicas de los prototipos de JavaScript;
- No es necesario mantener el orden correcto de declaración de archivos de script;
- En la mayoría de los casos, la página HTML que contiene JavaScript se carga más rápido ya que no se crean objetos durante la inicialización de la página y dado que algunos scripts podrían cargarse solo en el momento en que son realmente necesarios (son necesarios si el código de la persona que llama durante su ejecución realmente crea instancias de clases correspondientes);
- Las dependencias se declaran de manera más explícita y la clase depende solo de scripts concretos; Además, no es necesario agrupar artificialmente scripts particulares en módulos y definir dependencias entre dichos módulos;
- Si se utiliza el modo diferido de carga de scripts, solo se cargarán los scripts necesarios (que en realidad son necesarios para la funcionalidad de la aplicación). Si, por ejemplo, alguna página HTML puede operar en diferentes modos, como "lectura-escritura" y "solo lectura", para cada modo se cargarán los scripts requeridos y esto se realizará automáticamente sin la optimización manual de la carga del script.