Javascript 如何在即时js中更改名称空间?

Javascript 如何在即时js中更改名称空间?,javascript,bower,momentjs,Javascript,Bower,Momentjs,我正在尝试更改js的名称空间。脚本包装了(函数(未定义){…})我可以在调用中传递名称空间,但这会破坏bower更新兼容性(bower会覆盖我的更改,我可能会忘记保持文件同步)。你能提出替代方案吗 文档建议使用require.js传递配置选项。这是我必须加载的附加脚本。除了require.js,还有其他选择吗 矩js有一个makeGlobal函数: function makeGlobal(shouldDeprecate) { /*global ender:false */ if

我正在尝试更改js的名称空间。脚本包装了
(函数(未定义){…})我可以在调用中传递名称空间,但这会破坏bower更新兼容性(bower会覆盖我的更改,我可能会忘记保持文件同步)。你能提出替代方案吗

文档建议使用require.js传递配置选项。这是我必须加载的附加脚本。除了require.js,还有其他选择吗

矩js有一个makeGlobal函数:

function makeGlobal(shouldDeprecate) {
    /*global ender:false */
    if (typeof ender !== 'undefined') {
        return;
    }
    oldGlobalMoment = globalScope.moment;
    if (shouldDeprecate) {
        globalScope.moment = deprecate(
                'Accessing Moment through the global scope is ' +
                'deprecated, and will be removed in an upcoming ' +
                'release.',
                moment);
    } else {
      globalScope.cplex = {};
        globalScope.cplex.moment = moment;
    }
}
我将js与make结合并缩小。一个不理想的解决方案:

//moment-init.js
var ender = undefined;
if(typeof moment !== 'undefined'){
    var existingMomentJs = moment;
}
//load moment script
//moment-overrider.js
//updating namespace for moment js - abc namespace
var abc = {};
var ender = undefined;
abc.moment = moment;
if(typeof existingMomentJs !== 'undefined'){
    moment = existingMomentJs;
}

你为什么要这么做?我们有一个第三方广告部门,它凌驾于全球时刻之上。我们无法控制它。不带iframe的Ad单元负载