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

매개 변수는 내 브라우저에서 "창"으로 평가됩니다. 이해할 수없는 두 가지가 있습니다. 1) "전역"을 정의 할시기는 언제입니까? 그리고 "글로벌"과 "윈도우"는 둘 다 "정의되지 않은"것이됩니까? 2) 매개 변수가없는 익명의 함수에 "window"또는 "global"또는 Boolean false를 전달하는 목적은 무엇입니까?익명 함수로 전달되는 이유는 무엇입니까? "undefined"! = typeof global? global : "undefined"! = typeof window && window

답변

2

브라우저에는 window라는 고유 개체가 있고 반면에 Node.js 같은 다른 환경에는 global이라는 개체가 있습니다. 이 코드는 정의 된대로 전역 또는 창 중 하나를 평가합니다. 인수가없는 함수에 인수를 전달하는 것은 내부에서 arguments 오브젝트를 사용하지 않으면 의미가 없습니다.