Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

162
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!