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

159
Vistas
Use la función envuelta en IIFE de js script A dentro de IIFE de js script B sin exposición global

La privatización de funciones + variables es bastante importante en el proyecto js actual que estoy desarrollando. La consecuencia de esto es que cada script envuelve su contenido dentro de un IIFE. Lo que me pregunto ahora es, para ir un paso más allá, ¿es realmente posible en js, usando declaraciones de import o similares, para hacer lo siguiente?

 // contents of script A (function(){ function secretFunction() { } }());
 // contents of script B (function(){ // var AsFunction = // secretFunction of script A; // AsFunction(); }());

Sin exponer secretFunction() al alcance global (que es lo que estaba haciendo hasta ahora para alcanzar lo que quiero) ..?

Mi idea era poder usar las funciones de los diferentes scripts entre sí, sin exponerlos al alcance global, por lo que el "riesgo" de que se modifiquen desde una fuente externa se reduce aún más. Así, no necesitaría adjuntar funciones como secretFunction() al alcance global para que estén disponibles en otros scripts; por lo tanto, podría usar funciones dentro de los ámbitos de IIFE extranjeros dentro de otros ámbitos de IIFE. ¿Es algo así posible en js?

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

0

Entonces, en caso de que alguien haya enfrentado este problema y esté en la misma situación que yo: ha desarrollado un marco js completo para un negocio basado en la estructura IIFE , y cambiar todo eso a js: sería interesante hacer la lógica modular. , pero no tienes tiempo para hacerlo.

En este caso, también podría usar un enfoque que exponga su función al alcance global para pasarla del script A al script B, mientras que cualquier modificación aplicada a esa función en el alcance global aún no afectaría la función cuando la use. en el script B. Considere el siguiente ejemplo para ver claramente lo que quiero decir:

CONTENIDO DEL GUIÓN A

 (function(){ window.sample = {}; window.sample.test = function(){ console.log("initial"); }; }()); window.sample.test(); // This will log "initial"

CONTENIDO DEL GUIÓN B

 (function(){ // Make a copy of the function of script A passed via global scope var copy = window.sample.test; copy(); // This will log "initial" // Modify the global function passed to this script window.sample.test = function(){ console.log("modified"); }; window.sample.test(); // This will log "modified" copy(); // This will still log "initial", although the global function, which is // the source of this copy, has been modified. The variable copy remains // unaffected by this, because the variable stores the value to what it is // assigned, as js always passes variables by value and not by reference. }());
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