Javascript 这段代码如何优化缩小?

Javascript 这段代码如何优化缩小?,javascript,minify,Javascript,Minify,我看到了一些包含以下变量声明的代码: var equestAnimationFrame = 'equestAnimationFrame', requestAnimationFrame = 'r' + equestAnimationFrame, ancelAnimationFrame = 'ancelAnimationFrame', cancelAnimationFrame = 'c' + ancelAnimationFrame 根据页面上的一条评论,这是为了改进缩小效

我看到了一些包含以下变量声明的代码:

var equestAnimationFrame = 'equestAnimationFrame',
    requestAnimationFrame = 'r' + equestAnimationFrame,

    ancelAnimationFrame = 'ancelAnimationFrame',
    cancelAnimationFrame = 'c' + ancelAnimationFrame

根据页面上的一条评论,这是为了改进缩小效果,但我不知道该怎么做。有人能告诉我吗?谢谢。

这并不是为了提高缩小的正确性-所讨论的代码是一个polyfill。这意味着它将尝试不同的供应商前缀。因此,有时代码将是
“requestAnimationFrame”
(小写
r
),有时带有供应商前缀,如
msRequestAnimationFrame

由于这个原因,它是动态构建的,
“equalStationFrame”
总是在那里,但它的前缀可能是
“r”
“r”

“改进缩小”部分是因为没有写:

var requestAnimationFrame = window.requestAnimationFrame || 
                            window.msRequestAnimationFrame ||
                            window.mozRequestAnimationFrame ||
                            window.webkitRequestAnimationFrame ||
                            window.oRequestAnimationFrame ||
他们在
[“ms”、“moz”、“o”、“webkit”]
上运行for循环并尝试前缀。这最多可以节省几个字节

以下是我认为更清晰的代码,并且做了同样的事情:

var base = "equestAnimationFrame" // the base string
var alternatives = window["r"+base] || // try the basic option first
['moz', 'ms', 'o', 'webkit'].map(function(x){ 
    return x+"R" + base; // all the options
}).filter(function(x){ // check if in window
    return x in window;
})[0];

老实说,我认为“未统一”版本更具可读性。@Ajedi32我完全同意。此外,假设代码是gzip的,即使不是,我怀疑这会在文件大小上产生显著的差异。有时,显而易见的解决方案是更好的。如果你是为了大量的财产而这样做的,那么节省的尺寸将累积起来并变得显著。@AJED32这就像说未冷冻的肉比冷冻的肉更美味——当然是这样。缩小的代码并不意味着可读。我认为这是因为后来他们使用了
ancelAnimationFrame
,就像在
窗口[vendor+'R'+equalanimationframe]