javascript - 请解释这个 requestAnimationFrame 成语

标签 javascript html

有很多地方(例如 How to use requestAnimationFrame? )修复了 window.requestAnimationFrame 如下。我不明白为什么赋值的右侧包含在函数调用中。

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

最佳答案

我以前也想过同样的事情。我很确定 Google 真的很喜欢闭包。假设其中没有一个变量,这是一件“安全”的事情。

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

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

关于javascript - 请解释这个 requestAnimationFrame 成语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10237471/

相关文章:

javascript - 在存在 getter 的情况下使用 Mobx makeObservable 使 setter 成为一个 Action

javascript - AMP 如何在页面中包含 javascript 并应用此脚本中的函数

javascript - 我的 $.post 函数不返回任何数据

html - react native Web View 不呈现内容

javascript - 使用 AJAX 的 Bootstrap 工具提示(再来一次)

javascript - 为什么这两位 JavaScript 不等价?

html - 下拉子菜单不起作用

Jquery 延迟禁用

javascript - 通用组件中对象的类型为 'unknown' .ts(2571)

javascript - Knockout.js:根据比较的属性确定可见性