Ответ 1
Это не улучшит правильность мини-кода - этот код является requestAnimationFrame
polyfill. Это означает, что он собирается попробовать разные префиксы поставщиков. Поэтому иногда код будет "requestAnimationFrame"
(строчный r
) и иногда с префиксом поставщика, например msRequestAnimationFrame
.
По этой причине он построен динамически, "equestAnimationFrame"
всегда существует, но он может иметь префикс "r"
или "r"
.
Часть "улучшить минимизацию" заключается в том, что вместо написания:
var requestAnimationFrame = window.requestAnimationFrame ||
window.msRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
Они запускают цикл 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];