我有一个相当精细的类,它使用旧式的创建类的方式。不是使用类关键字,而是使用函数关键字定义类。要创建公共属性,请分配this.publicProperty。我的代码运行良好。
然而,当我尝试在高级模式下使用Closure Compiler(一个 JS 压缩工具)时,我得到了无数错误,从一个关于对this的“危险”引用开始。这是一个简单的例子,它说明了我的问题。我尝试压缩这个简单的 JS 代码:
var myclass = function(p1, p2) {
this.publicProperty = null;
};
编译后的代码输出为空并且有一个警告:
JSC_USED_GLOBAL_THIS: dangerous use of the global this object at line 2 character 2
this.publicProperty = null;
^
为什么这是“危险的”?
我在这里看到了关于 SO 的其他 帖子,这些帖子清楚地表明我的代码看起来不错。为什么 Closure minifier 抱怨这个?
作为第二个问题,我想知道是否有人可以建议一个有效的基于浏览器的 JS 缩小器,它将你的 JS 压缩到一行代码。我已经尝试过 Uglifier 和 Closure 并且javascript-minifier无法获得缩小的 JS 输出,这只是一行代码。