Aclare un alcance de JavaScript con respecto a la página 199 del "JavaScript" de Nicholas "

StackOverflow https://stackoverflow.com/questions/20353171

  •  25-08-2022
  •  | 
  •  

Pregunta

En el Apéndice A, Página 199, cuando se discute usando "Use Strict", es así:

Si desea que el modo estricto se aplique a las funciones mulitple sin necesidad de escribir "usar estricto" varias veces, use la invocación de funciones inmediatas:

//good
(function() {
    "use strict";

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

}());

Mi pregunta es, si así es como se ve toda la función anonlímica, entonces probablemente no hay efecto (para el resto) de invocarla de inmediato. Porque solo dos funciones se declaran dentro de la función anónima, pero no se llama desde dentro (por lo que las dos funciones no pueden hacer ningún efecto secundario para el resto del mundo), ni regresan al exterior para que sus referencias se pierdan.

Probablemente, solo quiero confirmar que el fragmento de código solo tiene la intención de mostrar el uso de "usar estricto", por lo que simplemente omitió las llamadas o retorno de estas dos funciones.

Gracias,

/oso

¿Fue útil?

Solución 2

Creo que es correcto. Este ejemplo no es completo porque nunca llamará a las funciones definidas en él. El ejemplo está destinado a ilustrar cómo aplicar "usar estricto" en un conjunto específico de funciones. Si quisiera extenderlo un poco para que las funciones se exporten, podría hacer algo como esto:

var myModule = (function() {
    "use strict";

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

    return {
        doSomething: doSomething,
        doSomethingElse: doSomethingElse
    };

}());

myModule.doSomething();
myModule.doSomethingElse();

Otros consejos

La idea es que la vida encierra todos de su código, no solo esas funciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top