在 JavaScript 中,使用 var ORain = {} 的形式可以模拟一个名称为 ORain 的命名空间。在实际应用开发中,我们可能会根据功能划分将 JavaScript 代码写到多个 JS 文件中,比如说用于验证的为 check.js,用于界面的为 ui.js,但是我们想把这些文件中都统一到同一个命名空间中,以便于管理以及解决与外部引入的库产生名称冲突的问题,如 ORain.Check.notNull()、ORain.UI.tableSort(),这里要引入的是名称为 ORain 的顶层命名空间,该怎么做呢?
如果我们在每个 JS 文件中,都写 var ORain = {},那么在同一个页面同时引入这两个 JS 文件时,后引入的会覆盖先引入的 JS 文件,即假设引入的顺序是 check.js、ui.js,我们只能调用到 ORain.UI 中的方法,如果所有的 JS 文件要同时可用,我们必须加一个判断,在每个 JS 文件中都包括下述的代码:
if(!ORain)
var ORain = {};
注意 var,这是必须的,否则会提示 "ORain 未定义"。其实,还可以更简单一些:
var ORain = ORain || {};