Bob*_*ler 12 javascript minify
我在这里看到了一些具有这些变量声明的代码:
var equestAnimationFrame = 'equestAnimationFrame',
requestAnimationFrame = 'r' + equestAnimationFrame,
ancelAnimationFrame = 'ancelAnimationFrame',
cancelAnimationFrame = 'c' + ancelAnimationFrame
Run Code Online (Sandbox Code Playgroud)
根据页面上的评论,这是为了改善缩小,但我无法弄清楚如何.有人能告诉我吗?谢谢.
Ben*_*aum 22
这不是为了适当改进缩小 - 有问题的代码是requestAnimationFramepolyfill.这意味着它将尝试不同的供应商前缀.因此,有时代码将是"requestAnimationFrame"(小写r),有时使用供应商前缀,例如msRequestAnimationFrame.
出于这个原因,它是动态构建的,"equestAnimationFrame"总是存在,但它可能以一个"r"或一个为前缀"R".
"改善缩小"部分是因为而不是写作:
var requestAnimationFrame = window.requestAnimationFrame ||
window.msRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
Run Code Online (Sandbox Code Playgroud)
他们运行for循环["ms","moz","o", "webkit"]并尝试前缀.这最多可以节省几个字节.
这是我认为更清晰的代码并做同样的事情:
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];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |