Non si tratta di migliorare la minificazione corretta: il codice in questione è un polyfill requestAnimationFrame
. Ciò significa che proverà a diversi prefissi dei fornitori. Così a volte il codice sarà "requestAnimationFrame"
(in minuscolo r
) e talvolta con un prefisso fornitore come msRequestAnimationFrame
.
Per questo motivo è stato creato dinamicamente, "equestAnimationFrame"
è sempre presente ma potrebbe essere preceduto da "r"
o "R"
.
La parte "migliorare minification" è perché invece di scrivere:
var requestAnimationFrame = window.requestAnimationFrame ||
window.msRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
Corrono un ciclo for su ["ms","moz","o", "webkit"]
e provare i prefissi. Ciò consente di risparmiare alcuni byte al meglio.
Qui è il codice che credo sia più chiara e fa la stessa cosa:
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];
fonte
2014-10-02 08:41:30
Penso che sia perché poi usano 'ancelAnimationFrame', come in' finestra [vendor + 'R' + equestAnimationFrame] ' – matsjoyce