我想知道下面的 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/