Javascript 为什么在使用requestAnimationFrame时使用此表达式
为什么在使用requestAnimationFrame时使用此if 如果window.requestAnimationFrame window.requestAnimationFrame=函数回调,元素{ var currTime=new Date.getTime; var timeToCall=Math.max0,16-currTime-lastTime; var id=window.setTimeoutfunction{callbackcurrTime+timeToCall;}, 计时呼叫; lastTime=currTime+timeToCall; 返回id;Javascript 为什么在使用requestAnimationFrame时使用此表达式,javascript,requestanimationframe,Javascript,Requestanimationframe,为什么在使用requestAnimationFrame时使用此if 如果window.requestAnimationFrame window.requestAnimationFrame=函数回调,元素{ var currTime=new Date.getTime; var timeToCall=Math.max0,16-currTime-lastTime; var id=window.setTimeoutfunction{callbackcurrTime+timeToCall;}, 计时呼叫
}; 这段代码实现了requestAnimationFrame。它定义了一个全局函数requestAnimationFrame。如果不存在这样的函数,则窗口的所有成员都是全局变量 下面是一个简短的解释,通过评论它的作用:
if (!window.requestAnimationFrame) // if requestAnimationFrame doesn't exist
window.requestAnimationFrame =
function(callback, element) { // define requestAnimationFrame
/* implementation detail */
};
这类代码称为polyfills,它在较旧的浏览器/javascript引擎中实现较新版本的浏览器/javascript引擎的功能。您是否在问为什么其他人编写的现有代码以某种方式编写?然后请编辑您的问题,添加您在何处找到此代码的上下文,以及整个代码的用途是什么?如果这不是你要问的,那么你想问什么就太不清楚了,因此,您应该再次编辑您的问题以澄清问题。请注意,由于polyfills本身是用javascript编写的,因此它可能没有用C编写的本机实现的函数快。但polyfills的全部目的是允许您在旧浏览器中使用新功能。