老师可以讲一下这几行代码吗?

老师可以讲一下这几行代码吗?

http://img1.sycdn.imooc.com//climg/5d9176e609c18f3b04980180.jpg

44行的requestAnimationFrame里面都没有出现过fn字眼,这两个函数是怎么产生练习的呢。。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2019-09-30 14:46:31

同学你好, 因为老师这里只是做一个测试, 只有几行代码, 而且功能相对单一, 所以直接写上面是可以的。

但是实际中可能会有大量的代码,而且调用requestAnimationFrame函数可能有不同的作用,那么传入的函数内部代码可能会有所不同, 所以更推荐使用分开写的方式, 这样可以更加方便代码阅读与修改哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

好帮手慕慕子 2019-09-30 12:07:30

同学你好,如下图所示, 从完整代码可以看出, window对象下没有requestAnimationFrame属性的时候, 就自己定义一下函数。 


http://img1.sycdn.imooc.com//climg/5d917e4f09520f6207850433.jpg

我们假设前面的条件都不满足, 那么此时的代码为:  var requestAnimationFrame = function (fn) { setTimeout(fn, 16)}。 这里的fn就是一个形参, 在调用requestAnimationFrame函数的时候传入的值就表示fn

同学可以尝试理解一下哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

  • 提问者 hyperse #1
    就是说window对象下没有requestAnimationFrame属性的时候, 当web moz o ms前缀或没有前缀时,requestAnimationFrame就等于这个方法:function (fn){}; 而requestAnimationFrame的参数就是传入function函数中的fn。那为什么不直接在上面写requestAnimationFrame(fn){setTimeout(fn,16)};呢。。。
    2019-09-30 14:31:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师