我想知道下面这个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
参数在这种情况下是无用的,但我不确定。
答案 0 :(得分:1)
是的,没用。
在每个function (...) {
区块开启者处,你开始一个新的变量范围 - 那里的任何东西,或者在函数的参数中,都有一个单独的范围。除了在这种情况下你重复使用他们的名字之外,仍然可以访问树中一级以上函数的任何变量。
第一个callback
参数基本上从未在代码中引用。