Es ist nicht zu verbessern Verfälschung richtig - der Code in Frage ist ein requestAnimationFrame
Polyfill. Dies bedeutet, dass es verschiedene Hersteller-Präfixe versuchen wird. Manchmal wird der Code "requestAnimationFrame"
(Kleinbuchstabe r
) und manchmal mit einem Lieferantenpräfix wie msRequestAnimationFrame
sein.
Aus diesem Grund ist es dynamisch aufgebaut, ist immer da, aber es könnte ein "r"
oder "R"
vorangestellt werden.
Die „Verbesserung der Verkleinerungs“ Teil ist, weil statt des Schreibens:
var requestAnimationFrame = window.requestAnimationFrame ||
window.msRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
Sie ein auf ["ms","moz","o", "webkit"]
for-Schleife laufen und die Präfixe versuchen. Dies spart bestenfalls einige Bytes.
Hier ist der Code Ich glaube, klarer ist und tut das Gleiche:
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];
Ich denke, die, weil sie später 'ancelAnimationFrame' verwenden, wie in' Fenster [vendor + 'R' + equestAnimationFrame] ' – matsjoyce