2

当我在http://closure-compiler.appspot.com的闭包编译器中测试以下代码时:

// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level ADVANCED_OPTIMIZATIONS
// @formatting pretty_print
// ==/ClosureCompiler==

// These get renamed
window.foo = {};
window.bar = {};

// These don't
window.uid = {};
window.test = {};

输出是:

window.a = {};
window.b = {};
window.uid = {};
window.test = {};

为什么要重命名:

window.foo = {};
window.bar = {};

但不是:

window.uid = {};
window.test = {};

这似乎是某些词的问题?

4

1 回答 1

6

更新

从 Closure-compiler 的 20150315 版本开始,默认启用基于类型的优化。


--use_types_for_optimization除非启用该标志,否则闭包编译器不会重命名与外部对象中定义的任何属性具有相同名称的属性。有关更多详细信息,请参阅项目常见问题解答

于 2012-10-01T14:04:53.533 回答