這不是爲了提高縮小率 - 所涉及的代碼是requestAnimationFrame
填充。這意味着它將嘗試不同的供應商前綴。因此有時代碼將爲"requestAnimationFrame"
(小寫r
),有時還會附帶供應商前綴,如msRequestAnimationFrame
。
由於這個原因,它是動態構建的,"equestAnimationFrame"
總是存在,但它可能以"r"
或"R"
爲前綴。
的「提高微小」部分是因爲不是寫:
var requestAnimationFrame = window.requestAnimationFrame ||
window.msRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
他們運行一個關於["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];
我認爲它的,因爲後來他們用'ancelAnimationFrame',如'窗口[供應商+「R」 + equestAnimationFrame]' – matsjoyce 2014-10-25 10:02:31