jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如果jQuery函数在其完成回调中调用自身,那么对堆栈的递归危险是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个小的jQuery组件,它响应按钮按下而动画,也应该自动进行.我只是想知道这个函数是否递归,我不能完全解决它.
function animate_next_internal() {

  $('#sc_thumbnails').animate(
    { top: '-=106' },500,function() {
      animate_next_internal();
    }
  ); 
}

我的实际功能更复杂,允许停止和启动,这只是一个简化的例子.

编辑它可能是否溢出堆栈,具体取决于事件在内部处理的方式.可能性:

> animate()directy调用完成的回调,在这种情况下溢出是不可避免的.
> animate()调度回调以通过某些外部调度机制进行调用然后终止,在这种情况下它永远不会溢出.

解决方法

我最初怀疑它会溢出内存,但我写了一个简短的测试来证实
function test(){
  $(".logo img").css("position","absolute");
  $(".logo img").css("top","100px");
  $(".logo img").animate({top:0},function(){
      test();
      console.log("exits here");
  });
}

test();

令人惊讶的是,我看到了

exits here
exits here
exits here
exits here
exits here
...

在我的日志中.看起来“animate()调度回调以便通过某种外部调度机制进行调用然后终止,在这种情况下它永远不会溢出.”是正确的答案

大佬总结

以上是大佬教程为你收集整理的如果jQuery函数在其完成回调中调用自身,那么对堆栈的递归危险是什么?全部内容,希望文章能够帮你解决如果jQuery函数在其完成回调中调用自身,那么对堆栈的递归危险是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。