Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在使用requestAnimationFrame时使用此表达式_Javascript_Requestanimationframe - Fatal编程技术网

Javascript 为什么在使用requestAnimationFrame时使用此表达式

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时使用此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;
}; 这段代码实现了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的全部目的是允许您在旧浏览器中使用新功能。