gpt4 book ai didi

javascript - 什么时候使用递归函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:15:36 27 4
gpt4 key购买 nike

我正在阅读递归函数,我读到当我们使用递归函数时它会调用堆栈帧,因此如果我们最终调用递归函数 10000 次,则可能是可用内存问题。我下面有一个函数,使用递归是否正确?或者你认为我应该避免它?

function animateLeft(obj, top){
if(top >= 300){
obj.style.visibility = 'visible';
return;
}
else {
var box = obj;
box.style.marginLeft = top + "px";
box.style.marginTop = top + "px";
setTimeout(function(){
animateLeft(obj, top + 1);
}, 25)
}
}
function animateMe() {
animateLeft(document.getElementById('inner-rectange'), 0);
}

最佳答案

setTimeout 的使用意味着您的代码不是直接递归调用动画函数。这会导致函数被重复调用,但不会造成深栈的创建。

对于动画来说,这是一个相当合理的方法(有更好的方法,例如 requestAnimationFrame,但它是合理的!)

关于javascript - 什么时候使用递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20751299/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com