您对的意图的猜测
|| {}非常接近。当在文件顶部看到该特定模式时,该模式用于创建 名称空间 (即命名对象),在该 命名空间 下可以创建函数和变量,而不会过度污染全局对象。
究其原因 ,为什么 它的使用是如此,如果你有两个(或更多)的文件:
var MY_NAMESPACE = MY_NAMESPACE || {};MY_NAMESPACE.func1 = {}和
var MY_NAMESPACE = MY_NAMESPACE || {};MY_NAMESPACE.func2 = {}这两个份额的同一个命名空间那么也没关系,其中责令这两个文件被加载,你仍然可以
func1和
func2正确的中定义
MY_NAMESPACE正确的对象。
加载的第一个文件将 创建 初始
MY_NAMESPACE对象,任何后续加载的文件将 扩展 该对象。
有用的是,这还允许 异步
加载共享相同名称空间的脚本,从而可以缩短页面加载时间。如果
<script>标记
defer设置了属性,则您将不知道它们将按什么顺序解释,因此如上所述,这也解决了该问题。



