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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么这会传递给匿名函数:“undefined”!= typeof global? global:“undefined”!= typeof window && window相关的知识,希望对你有一定的参考价值。

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

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

答案

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

以上是关于为什么这会传递给匿名函数:“undefined”!= typeof global? global:“undefined”!= typeof window && window的主要内容,如果未能解决你的问题,请参考以下文章

怎样给Spark传递函数

Lambda演算中的JavaScript匿名函数模拟算法,结果返回`undefined`

PHP基础:文件包含,参数和传递,匿名函数

GobEncoder 通过 RPC 传递匿名函数

[沫沫金]JS匿名函数this调用变量报错

自调用匿名函数