在查看node.js的某些模块源代码时,我发现其中一个具有以下结构:
;(function(global){
var a = // some definitions
.. // code
})(typeof window === "object" ? window : this);
那么写的意思是什么:
答案 0 :(得分:8)
分号是缩小的安全措施(详见here)。
问题的第二部分:(typeof window === "object" ? window : this)
正在检查代码是否在浏览器中运行。如果实际定义了窗口,那么我们总结它在浏览器中运行,如果不在节点中运行。然后我们将此环境(node.js或window)作为变量传递。