Esclareça um escopo de JavaScript sobre a página 199 do "JavaScript Mantivable" de Nicholas

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

  •  25-08-2022
  •  | 
  •  

Pergunta

No Apêndice A, página 199, ao discutir o uso de "Use Strict", é assim:

Se você deseja que o modo rigoroso se aplique às funções mulitple sem precisar escrever "usar rigorosas" várias vezes, use a invocação imediata de funções:

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

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

}());

Minha pergunta é: se é assim que toda a função anonymous se parece, provavelmente não há efeito (para o resto) de invocá -lo imediatamente? Como apenas duas funções são declaradas dentro da função anônima, mas ela não é chamada de lá dentro (para que as duas funções não possam fazer efeitos colaterais para o resto do mundo), nem retornaram ao exterior, para que suas referências sejam perdidas.

Provavelmente, só quero confirmar, que o snippet de código só se destina a mostrar o uso de "Use Strict", por isso simplesmente omitiu as chamadas ou o retorno dessas duas funções?

Obrigado,

/Bruin

Foi útil?

Solução 2

Eu acho que você está correto. Este exemplo não é completo, porque nunca chamará as funções definidas nele. O exemplo é apenas para ilustrar como aplicar "usar rigoroso" em um conjunto específico de funções. Se você quisesse estendê -lo um pouco para que as funções sejam exportadas, você pode fazer algo assim:

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

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

    return {
        doSomething: doSomething,
        doSomethingElse: doSomethingElse
    };

}());

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

Outras dicas

A ideia é que o iife encerra tudo do seu código, não apenas essas funções.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top