2012-04-14 43 views
0

是否有任何可以定义命名空间的javascript缩小器(在线的)?我的意思是所有这些minifiers生成短变量名称,如a,b,c ...这可能会导致与其他缩小的JavaScript冲突的代码。用命名空间来缩小Javascript

+2

不要在全球范围内编写代码。这就像公共洗手间,你想尽量减少你的暴露。用自动执行的匿名函数包装你的代码。 – mikeycgto 2012-04-14 04:51:16

+1

大多数评审员让你指定你不想改变的名字 – 2012-04-14 04:53:06

+0

@mikeycgto:你应该给我一个快速建议如何实现? – SteMa 2012-04-14 04:53:28

回答

3

大多数(好的)限定符都会留下全局范围的变量,因为这些是默认情况下的命名空间。 mikeycgto是在暗示,你一定要保持那些降到最低:

var page = (function(){ 
    var scopedVar = "I'm something like private."; 

    //do some other stuff 

    return { 
    usefulThing: function(){ 
     return scopedVar; 
    } 
    }; 
}()); 

运行,通过一个minifier应该让你在全球范围内“页”变种。 page.usefulThing是一种方法(它也应该由minifier独立)。 “scopedVar”可能会变成“a”或“o”或其他,但你永远不会在意。你的API将保持如预期的那样,尽管内部将被混淆。