为什么这会传递给匿名函数:“undefined”!= typeof global? global:“undefined”!= typeof window&&窗口

时间:2017-12-30 22:09:17

标签: javascript window undefined global

!function(){
   function body
}("undefined" != typeof global ? global : "undefined" != typeof window && window)

参数在浏览器中评估为“window”。有两件事我不明白: 1)何时定义“全局”?何时“全球”和“窗口”都是“未定义”? 2)将“window”或“global”或Boolean false传递给没有参数的匿名函数的目的是什么?

1 个答案:

答案 0 :(得分:2)

在浏览器中有一个名为window的内部对象,而在Node.js等其他环境中则有一个名为global的对象。此代码根据定义的值来评估全局或窗口,如果没有,则评估为false。至于将参数传递给不带参数的函数是没有意义的,除非在内部使用了对象arguments