Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

188
Vistas
¿Se puede revelar el patrón del módulo sin IIFE como este y tener el mismo propósito?

Mi comprensión del patrón de módulo revelador es la siguiente:

CÓDIGO #1

 const iifeModulePattern = (function () { const secretSeed = 999; // ← private const logSecretCode = function(){console.log(secretSeed+1)}; return {methodForPublic : logSecretCode}; })(); iifeModulePattern.methodForPublic();

Hasta ahora espero no estar equivocado. Mi pregunta es:

  1. ¿El siguiente Código #2 no servirá para el mismo propósito?
  2. Si es así, ¿por qué el código n.° 1 es más popular que el código n.° 2?
  3. Si no es así, ¿cuál es la diferencia?

CÓDIGO #2

 const modulePattern = () => { const secretSeed = 999; // ← private const logSecretCode = function(){console.log(secretSeed+1)}; return {methodForPublic : logSecretCode}; }; modulePattern().methodForPublic();

No almacenaré códigos "secretos" (como contraseñas) de esta manera. Los códigos anteriores son solo ejemplos.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

 const iifeModulePattern = (function() { let value = 0; // private return { next: () => (value = 134775813 * value + 1) >>> 0 }; })(); for (let i = 0; i < 5; ++i) { console.log("iifeModulePattern.next()", i, iifeModulePattern.next()); } console.log("The basic IIFE."); console.log(""); const modulePattern = () => { let value = 0; // private return { next: () => (value = 134775813 * value + 1) >>> 0 }; }; for (let i = 0; i < 5; ++i) { console.log("modulePattern().next()", i, modulePattern().next()); } console.log("Kinda pointless this way, ain't it? Everytime, the sequence starts all over."); console.log(""); const instance1 = modulePattern(); const instance2 = modulePattern(); for (let i = 0; i < 10; ++i) { console.log("instance1.next()", i, instance1.next()); if (i & 1) { console.log("instance2.next()", i, instance2.next()); } } console.log("This usage makes more sense.\nAnd the two instances progress independant of each other.");
 .as-console-wrapper {top:0;max-height:100%!important}

¿El siguiente Código #2 no servirá para el mismo propósito?

Si no talvez; depende de como lo uses.

Si no es así, ¿cuál es la diferencia?

iifeModulePattern es un singleton, modulePattern() es una fábrica.

Si es así, ¿por qué el código n.° 1 es más popular que el código n.° 2?

¿Cuál es el propósito de darle un nombre a la fábrica, almacenarlo en una variable si todo lo que hará es llamarlo una vez, aquí mismo, ahora mismo?

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda