javascript - 自执行函数中的参数是否必要?

标签 javascript callback

我想知道下面的 JavaScript 代码示例是否包含无用的参数。我正在学习 JavaScript webworkers 和多线程,我正在学习的教程有以下代码:

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

我在JS中使用自执行函数的次数不多,但我无法弄清楚包装函数中的callback参数的用途。我的理解是,只有当关闭 () 也包含要传入的变量时,将参数放入打开函数中才有效。

内部函数callback参数有意义,因为它试图复制“每秒30帧”的 Action 。

我的假设是外部匿名函数中的callback参数在这种情况下是无用的,但我不确定。

最佳答案

是的,没用。

在每个 function (...) { block 开启器中,您正在启动一个新的变量作用域 - 其中的任何内容或函数参数中的任何内容都具有单独的作用域。树中上一层函数中的任何变量仍然可以访问,除非在这种情况下您重复使用了它们的名称。

第一个callback参数本质上从未在代码中被引用。

关于javascript - 自执行函数中的参数是否必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35972674/

相关文章:

javascript - 无法将回调队列转换为使用 Promise

javascript - 在创建 Polymer 元素的模板之前导入 html 文件

javascript - 为插件 datetimepicker 创建一个allowTimes循环(而不是每个季度硬编码)

javascript - AngularJS 指令调用另一个指令未正确传递数据以使用 $compile 进行渲染

javascript - 如何修复 'callback is not a function error'?

javascript - 比较 API 的不同数据响应

javascript - 您如何将安全的 websockets 与 Photon 实时 Javascript SDK 一起使用?

javascript - 为什么 jquery toggleClass() 只适用于偶数 sibling ?

javascript - Azure 表存储返回查询结果

javascript - 将回调函数传播到 Mongoose 函数