任何JS minifiers都会用字符串替换公共属性名吗?

时间:2015-06-11 12:12:32

标签: javascript minify

任何JS minifiers(uglify,closure等)都会经历为长属性名添加变量的步骤吗?我已经尝试了两种方法,并且无法找到执行此操作的标记,但只是想知道是否有人知道我不会做的事情:)

e.g:

obj.longPropertyName = 42;
obj.longPropertyName++;
obj.longPropertyName++;
obj.longPropertyName++;

可以缩小为:

var a='longPropertyName';
obj[a]=42;
obj[a]++;
obj[a]++;
obj[a]++;

[edit]要明确的是,闭包会做到这一点(或者更确切地说会减少到obj.a),但它不会使用window.addEventListener等默认道具

1 个答案:

答案 0 :(得分:0)

是的,一些缩小器具有混淆功能和属性名称的附加标志。大多数情况下,这些混淆会导致属性名称非常短(但不是每次都有)。

编辑:例如,YUI压缩器默认情况下会这样做,如果你没有将--nomunge参数传递给它。