组织javascript文件以更好地混淆

时间:2012-04-24 12:47:06

标签: javascript global-variables obfuscation

utilities.js:
function log(message)
{
....
}

module1.js
YAHOO.util.Event.onDOMReady(function()
{
  log("module1 is loaded");
});

module2.js
YAHOO.util.Event.onDOMReady(function()
{
  log("module2 is loaded");
});

对于页面请求,我首先加载utilities.js然后加载module1.js和module2.js

现在,当我尝试模糊这些文件时,模块中对“log”的引用不会被混淆,因为它是隐含的全局。

我希望将模块文件分开(尽管为同一页面提供服务),以提高可读性和维护性。 utilities.js中的函数也可用于其他页面。

如何更好地组织这些文件以改善混淆?

2 个答案:

答案 0 :(得分:0)

将代码放在自执行匿名函数中:

(function(){
    YAHOO.util.Event.onDOMReady(function() {
        log("module2 is loaded");
    });
})();

因此,当您的代码混淆全局函数时,变量仍将具有原始名称。

答案 1 :(得分:0)

我个人喜欢使用RequireJS:http://requirejs.org/

这是一个加载模块的框架,您可以返回要使用的集合或对象,并将所有模块保留在各个范围内。