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

このパラメータは、ブラウザで「window」と評価されます。私が理解できない2つのことがあります: 1) "global"はいつ定義されますか?また、「グローバル」と「ウィンドウ」はどちらも「未定義」なのでしょうか? 2)パラメータがない無名関数に "window"または "global"またはBoolean falseを渡す目的は何ですか?なぜこれは無名関数に渡されます: "undefined"!= typeof global? global: "undefined"!= typeof window && window

答えて

2

ブラウザには、windowという本来のオブジェクトがありますが、Node.jsなどの他の環境では、globalというオブジェクトがあります。このコードは、どちらが定義されているかに応じて、グローバルまたはウィンドウのいずれかを評価し、存在しない場合はfalseに評価します。引数をとらない関数に引数を渡すのは、オブジェクトargumentsが内部で使われていなければ理にかなっていません。

関連する問題