是否需要自执行功能中的参数?

时间:2016-02-28 03:38:18

标签: 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参数的用途。我的理解是,只有当结束()包含要传入的变量时,才将参数放入open函数。

内部函数callback参数有意义,因为它试图以每秒30帧的速度复制"动作。

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

1 个答案:

答案 0 :(得分:1)

是的,没用。

在每个function (...) {区块开启者处,你开始一个新的变量范围 - 那里的任何东西,或者在函数的参数中,都有一个单独的范围。除了在这种情况下你重复使用他们的名字之外,仍然可以访问树中一级以上函数的任何变量。

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