2017-12-30 27 views
0
!function(){ 
    function body 
}("undefined" != typeof global ? global : "undefined" != typeof window && window) 

Der Parameter wird in meinem Browser als "Fenster" ausgewertet. Es gibt zwei Dinge, die ich nicht verstehe: 1) wann wird "global" definiert? Und wann werden "global" und "window" sowohl "undefiniert" sein? 2) Was ist der Zweck, um "window" oder "global" oder ein Boolean false in eine anonyme Funktion zu übergeben, die keinen Parameter hat?Warum wird dies an eine anonyme Funktion übergeben: "undefined"! = Typeof global? global: "undefined"! = Typ des Fensters && Fenster

Antwort

2

In einem Browser gibt es ein intrinsisches Objekt namens window, während in anderen Umgebungen wie Node.js ein Objekt namens global ist. Dieser Code wird entweder als global oder als Fenster ausgewertet, je nachdem, welcher definiert ist, oder auf "false", wenn dies nicht der Fall ist. Das Übergeben eines Arguments an eine Funktion, die kein Argument benötigt, macht keinen Sinn, es sei denn, das Objekt arguments wird innerhalb verwendet.

Verwandte Themen