2

我的代码由几个文件组成,默认值可能会在初始化时被覆盖。默认情况下,Google Closure Compiler 将继续使用默认值进行初始化,尽管它从未使用过。是否有等价于@nosideeffects删除第一个变量定义。

这是一个例子:

var a = 1;
a = 2;
window.console.log(a);

将被编译成(在高级模式下):

var a=1,a=2;window.console.log(a);

就我而言,默认值是一个很长的字符串,我觉得值得找到一种方法来告诉编译器只保留最新的。

4

1 回答 1

1

闭包编译器有几个只在函数体中运行的优化(因为它们在大型项目上运行成本太高):“流敏感内联”是你想要的。在简单模式下,这:

function f() {
  var a = 1;
  a = 2;
  window.console.log(a);
}

变成:

function f() {
  window.console.log(2);
}

除了不将代码置于全局范围之外,您无需执行任何操作即可启用此功能。

于 2013-09-23T15:36:28.440 回答