这种定义是什么意思?

时间:2014-03-11 12:21:19

标签: javascript node.js

在查看node.js的某些模块源代码时,我发现其中一个具有以下结构:

;(function(global){

    var a = // some definitions
    .. // code



})(typeof window === "object" ? window : this);

那么写的意思是什么:

  1. 代码前面的分号?
  2. 写(typeof window ===“object”?window:this); ?

1 个答案:

答案 0 :(得分:8)

分号是缩小的安全措施(详见here)。

问题的第二部分:(typeof window === "object" ? window : this)正在检查代码是否在浏览器中运行。如果实际定义了窗口,那么我们总结它在浏览器中运行,如果不在节点中运行。然后我们将此环境(node.js或window)作为变量传递。