为什么在使用requestAnimationFrame时使用if if
if (!window.requestAnimationFrame)
window.requestAnimationFrame = function(callback, element) {
var currTime = new Date().getTime();
var timeToCall = Math.max(0, 16 - (currTime - lastTime));
var id = window.setTimeout(function() { callback(currTime + timeToCall); },
timeToCall);
lastTime = currTime + timeToCall;
return id;
};
答案 0 :(得分:0)
这段代码实现了requestAnimationFrame。它定义了一个全局函数requestAnimationFrame
(window
的所有成员都是全局变量),如果这样的函数不存在。
以下是对其作用的评论的简短说明:
if (!window.requestAnimationFrame) // if requestAnimationFrame doesn't exist
window.requestAnimationFrame =
function(callback, element) { // define requestAnimationFrame
/* implementation detail */
};
这些代码称为polyfills - 在旧浏览器/ javascript引擎中实现较新版浏览器/ javascript引擎功能的代码。