我最近测试过UglifyJS https://github.com/mishoo/UglifyJS and YUI压缩器 http://developer.yahoo.com/yui/compressor/并注意到一些奇怪的事情。
两个缩小器似乎都没有更改对象属性的名称,只更改了变量和函数的名称。
例如,如果我有以下代码:
var objName = {first:2, second:4};
alert(objName.first + " " + objName.second);
名字first
and second
缩小版本中保持不变。
这是为什么?
由于在 javascript 中,函数中会创建新的作用域,因此您可以在立即调用的函数中作用域代码。
// scoped
(function() {
var objName = {first:2, second:4};
alert(objName.first + " " + objName.second);
})();
然后使用Google 的闭包编译器 http://closure-compiler.appspot.com/home,如果您打开“高级”优化,它将发现这些属性仅在本地使用,并且会混淆它们。
// result
var a={a:2,b:4};alert(a.a+" "+a.b);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)