我无法理解这个括号语句及其目的,有人可以帮助我吗?
function fadeOut(el){
el.style.opacity = 1;
(function fade() { <-- If this is true, then it keeps on executing?
if ((el.style.opacity -= .1) < 0) {
el.style.display = "none";
} else {
requestAnimationFrame(fade);
}
})();
};
对我来说,这看起来像是递归使用的函数fade
。在行requestAnimationFrame(fade);
中,它实际上将自身的引用作为参数传输。因此,此方法确保它至少执行一次自身,但在内部 if 语句为 false 的情况下,它将以自身作为参数调用函数requestAnimationFrame
。所以也许这个requestAnimationFrame
会再次打电话给fade()
。
顺便说一句,我不同意@VLAZ和@Rajesh。我没有看到,链接的问题在您的示例上下文中正确回答了此结构的用法。此函数既不用于变量范围,也不用于覆盖框架属性。