请解释一下这个 requestAnimationFrame 习语

2023-12-12

有很多地方(例如如何使用requestAnimationFrame?)修复window.requestAnimationFrame如下。我不明白为什么赋值的右侧被包装到函数调用中。



window.requestAnimFrame = (function(){
    return window.requestAnimationFrame ||
    window.webkitRequestAnimationFrame ||
    window.mozRequestAnimationFrame ||
    window.oRequestAnimationFrame ||
    window.msRequestAnimationFrame ||
    function(callback){
        window.setTimeout(callback, 1000 / 60);
    };
})();
  


我以前也想知道同样的事情。我很确定谷歌真的很喜欢闭包。即使其中没​​有一个变量,这是一件“安全”的事情。

据我所知,这是完全相同的事情,没有任何干扰命名空间的变化(使用这样的闭包的一般原因):

window.requestAnimFrame = 
    window.requestAnimationFrame ||
    window.webkitRequestAnimationFrame ||
    window.mozRequestAnimationFrame ||
    window.oRequestAnimationFrame ||
    window.msRequestAnimationFrame ||
    function(callback){
        window.setTimeout(callback, 1000 / 60);
    };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请解释一下这个 requestAnimationFrame 习语 的相关文章

随机推荐

  • gitosis 与 gitolite? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找安装 git 服务器来与我的团队共享项目 我不想在服务器上为每个需要 git 访问权限的开发人员创建一个具有 SSH 访问权限的用户帐户
  • 为什么这个页面会滚动?

    html body height 100vh body margin 0px footer height 50px page wrap width calc 100 100px height calc 100 100px position
  • Mysql 表分区基于列/id 的最后一位数字

    我想根据员工 ID 的最后一位创建分区 IE all ids ending with 0 go to first partition ending with 1 go to second partition and so on 这样我想创建
  • 使用多行字符串的正则表达式修剪行并缩小空格

    I m using a php function want to create a function to trim all unnecessary white spaces from a multi line string 它不起作用的正
  • 如何在静态方法中访问下拉列表

    我有以下静态方法 public static List
  • 如何为节点设置预加载文件?

    有没有办法在每次运行之前预加载一些文件node 交互式 就像 vimrc bash profile etc I use node主要是交互方式 我使用该模块CSV很多 有没有办法避免打字require csv 每次我开始node 创建初始化
  • JBoss/Wildfly AS 内重复格式化的记录器输出

    看来 我不能排除 JBoss Wildfly 日志子系统 我有一个 Java EE 耳朵 希望将 slf4j API 与 log4J2 实现一起使用 我的目的是禁用 JBoss 日志记录子系统 让我的 slf4j log4j2 实现处理日志
  • 如何在 Blackberry AutoCompleteField 中以字符串形式获取所选项目?

    使用 Blackberry 自动完成字段时如何以字符串形式获取所选项目 我目前能够获取选定的索引 我正在重写 AutoCompleteField 类中的 onSelect 方法 如下所述 自动完成类参考 API JDE 5 0 下面的代码片
  • Kotlin 惰性属性依赖于 init 中初始化的另一个属性

    我在 Kotlin 有以下课程 class Example val name String val lazyVar String by lazy name something else init name StackOverflow 当我使
  • 如何获取文档的数量并以有效的方式过滤它们? (猫鼬)

    我正在实现搜索功能 即在 mongoDB 中查找文档 我想要 skip x and limit x on result 来模拟分页结果 但是我可以获取文档总数 在跳过和限制之前 并立即获取过滤结果吗 产生预期输出的代码 db Datas f
  • 我无法在 R 3.2.0 中加载开发工具

    我正在使用 Rstudio 开发 R 包 到目前为止 我使用 R 3 1 2 并且一切正常 最近我将 R 更新到了 3 2 0 版本 并且我也更新了软件包 现在 加载开发工具时 gt library devtools Error in in
  • 创建控件的透明部分以查看其下方的控件

    我已经修改了超级上下文菜单条在 CodeProject 找到的 可以满足我的一些项目需求 我将其用作地图标记的工具提示GMap NET 地图控件 下面是它的示例 我想做的就是通过让它看起来更像一个泡沫来稍微美化一下 类似于旧的 Google
  • 将秒转换为天、小时、分钟和秒

    我有一个 Javascript 计时事件 带有一个带有停止按钮的无限循环 单击开始按钮时它将显示数字 现在我希望将这些数字转换为 4 小时 3 分钟 50 秒之类的内容 var c 0 var t var timer is on 0 fun
  • 如何迭代求BST的高度?

    public void HeightIterative int counter 0 int counter2 0 TreeNode current root if current null while current LeftNode nu
  • 将 PHP 页面的 html 响应返回到变量

    我正在尝试生成一封电子邮件 其中包含一些通过另一个 PHP 文件创建的 HTML 电子邮件生成文件由每小时运行的 cron 运行 存在另一个文件 可生成电子邮件所需的 HTML HTML 生成文件没有我可以调用的函数 例如 emailBod
  • Pandas groupby max - 多列

    在 pandas 中分组到最大值后 如何完全沿着 max 值显示匹配的行结果 df data loc no std date result date result result df groupby no std date result d
  • 如何滚动警报控制器中的操作? Xcode 8、Swift 3、IOS

    请帮忙 我是个大菜鸟 我从各种来源收集了这段代码 所以我真的不知道我在做什么 我的警报控制器显示我可以写入的文本字段 取消 操作 确定 操作 它还显示多个 输入要标记的关键字 操作 它有太多的操作 我需要的大约 20 个关键字操作 以至于它
  • 了解 VBScript 中的 ON ERROR

    我正在尝试修改 vbscript 并将其按照指示转换为 Powershell 我的函数 SearchAD 有一段出现错误的代码 on error resume next Set objRS command execute SearchAD
  • 无法生成 DialogFlow v2 访问令牌

    在版本 1 中 这就是我与 DialogFlow Api 通信的方式 fetch configs baseUrl query v 20150910 body JSON stringify query text lang en session
  • 请解释一下这个 requestAnimationFrame 习语

    有很多地方 例如如何使用requestAnimationFrame 修复window requestAnimationFrame如下 我不明白为什么赋值的右侧被包装到函数调用中 window requestAnimFrame functio