如何使用 YUI 混淆全局变量而不将整个 class 放入闭包中

How do I obfuscate global variable using YUI without putting entire class inside a closure

假设有一个全局变量是一个函数

function MyClass(){}

还有这个class的方法,比如

MyClass.func1 = function()
{
}

我想确保 YUI 压缩和混淆工作不会将整个 class 放在像

这样的闭包中
(function () {
    function MyClass(){}
    MyClass.func1 = function()
    {
    }
})();

有没有办法让 YUI 压缩在不这样做的情况下工作?

好吧,我想你可以在压缩之前将它包装在一个匿名函数中,然后在之后删除匿名函数。

还要确保您使用的是原型 ;)

(function () {
  function MyClass(){}
  MyClass.prototype.func1 = function()
  {
  }
})();

结果:

(function(){function a(){}a.prototype.func1=function(){}})();

并且只取出匿名函数:

function a(){}a.prototype.func1=function(){}