Clarifier une portée javascript concernant la page 199 du "javascript maintenable de Nicholas"

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

  •  25-08-2022
  •  | 
  •  

Question

Dans l'annexe A, page 199, lorsque vous discutez de l'utilisation de "Utiliser Strict", cela se passe comme ceci:

Si vous souhaitez que le mode strict s'applique aux fonctions Mulitple sans avoir besoin d'écrire "Utiliser STRICT" plusieurs fois, utilisez une invocation immédiate:

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

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

}());

Ma question est, si c'est à quoi ressemble toute la fonction anonlymue, alors il n'y a probablement pas d'effet (au reste) de l'invoquer immédiatement? Parce que seules deux fonctions sont déclarées dans la fonction anonyme, mais elle n'est pas appelée de l'intérieur (afin que les deux fonctions ne puissent pas faire d'effets secondaires au reste du monde), ni retournés à l'extérieur afin que leurs références soient perdues.

Je veux probablement confirmer que l'extrait de code est seulement destiné à afficher l'utilisation de "utiliser strict", donc il a simplement omis les appels ou le retour de ces deux fonctions?

Merci,

/ bruin

Était-ce utile?

La solution 2

Je pense que vous avez raison. Cet exemple n'est pas complet car il n'appellera jamais les fonctions qui y sont définies. L'exemple est simplement destiné à illustrer comment appliquer "utiliser strict" sur un ensemble spécifique de fonctions. Si vous vouliez l'étendre un peu pour que les fonctions soient exportées, vous pouvez faire quelque chose comme ceci:

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

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

    return {
        doSomething: doSomething,
        doSomethingElse: doSomethingElse
    };

}());

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

Autres conseils

L'idée est que l'Iife enferme tout de votre code, pas seulement ces fonctions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top