Wir sehen diesen Ansatz die ganze Zeit:
%Vor% Wenn ich das obige Snippet studiere, frage ich mich, warum ein global zugängliches Objekt wie window
als Argument für eine Funktion übergeben wird. Könnte es sein, dass:
Was denkst du?
Es macht den Code tragbarer.
Sie können den Code kopieren und in eine Umgebung einfügen, in der kein globales Fensterobjekt definiert ist (z. B. Knoten), aber er ist API-kompatibel für all die Dinge, die Ihnen in Ihrem Code wichtig sind. Dann müssen Sie nur das an die Funktion übergebene Argument ändern.
Eine kleine Änderung, die den Code klarer macht:
%Vor%Ich kenne einige mögliche Gründe für den Code, nach dem Sie gefragt haben:
Das Erstellen von Verknüpfungen für document
, location
und navigator
in lokalen Variablen ist möglicherweise eine geringfügige Leistungsverbesserung und verringert die Tipparbeit.
Die Übergabe von window
an die selbstausführende Funktion kann bewirken, dass Verweise auf window
etwas besser sind als die Verwendung aus dem globalen Bereich.
Es gibt einige Ausführungsumgebungen für Javascript (nicht in einem Browser), in denen das globale Objekt nicht window
heißt, daher könnte der Code leichter angepasst werden. Aber dieser Grund scheint ein bisschen schwierig zu sein, da Code, der für einen Browser geschrieben wurde, sehr wahrscheinlich auch andere Browser-Fähigkeiten verwendet.
Tags und Links javascript scope window