Klären Sie einen JavaScript -Scoping in Bezug auf Seite 199 von Nicholas '"Wardierbarer JavaScript"

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

  •  25-08-2022
  •  | 
  •  

Frage

In Anhang A, Seite 199, bei der Diskussion mit "Strict verwenden", geht es so:

Wenn Sie möchten, dass der strenge Modus für Mulitple -Funktionen gelten, ohne mehrmals "Strikte" zu schreiben, verwenden Sie sofortige Funktionen:

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

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

}());

Meine Frage ist, wenn die gesamte anonlymous -Funktion so aussieht, dann gibt es wahrscheinlich keinen Effekt (den Rest), sie sofort aufzurufen. Weil nur zwei Funktionen innerhalb der anonymen Funktion deklariert werden, aber nicht von innen von innen aufgerufen werden (so dass die beiden Funktionen den Rest der Welt keine Nebenwirkungen haben können) oder nach außen zurückgekehrt, so dass ihre Referenzen verloren gehen.

Wahrscheinlich möchte ich nur bestätigen, dass das Code -Snippet nur die Verwendung von "Strict" verwenden soll, sodass diese beiden Funktionen einfach entweder die Aufrufe oder die Rückgabe von diesen beiden Funktionen ausgelassen haben?

Vielen Dank,

/bruin

War es hilfreich?

Lösung 2

Ich denke du hast Recht. Dieses Beispiel ist nicht vollständig, da es niemals die darin definierten Funktionen aufrufen wird. Das Beispiel soll nur veranschaulichen, wie man "Strikte" auf einen bestimmten Satz von Funktionen anwendet. Wenn Sie es ein wenig erweitern möchten, damit die Funktionen exportiert werden, können Sie so etwas tun:

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

    function doSomething() {
        // code
    }

    function doSomethingElse() {
        // code
    }

    return {
        doSomething: doSomething,
        doSomethingElse: doSomethingElse
    };

}());

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

Andere Tipps

Die Idee ist, dass das iife einschließt alle von Ihrem Code, nicht nur dieser Funktionen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top