码迷,mamicode.com
首页 > Web开发 > 详细

js递归错误

时间:2018-09-11 21:05:04      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:程序设计   fun   share   tac   20px   aik   click   一般来说   ogg   

错误信息:Uncaught RangeError: Maximum call stack size exceeded


问题代码:


js代码:
$(function(){
    
    selectToggle();
});


//自动加载菜单栏
function selectToggle(){

    $(".m-menu__toggle").click();
    
}    


html代码:
<a  href="#" class="m-menu__link m-menu__toggle" onclick="selectToggle()">
    <i class="m-menu__link-icon flaticon-share"></i>
    <span class="m-menu__link-text">
    {{module.moduleName}}
    </span>
    <i class="m-menu__ver-arrow la la-angle-right"></i>
</a>

错误原因:
错误根据中文翻译,意思为:最大堆栈超过了最大值。

反复循环调用导致最大堆栈超过最大值

每个浏览器都不一样,例如常用的Chrome和FireFox

  • Firefox: 50994
  • Chrome: 10402

 

解决办法:仔细审查代码,出现这种情况是因为函数不合理的循环调用导致的。

另外科普下什么是递归(引用百度百科):

程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

js递归错误

标签:程序设计   fun   share   tac   20px   aik   click   一般来说   ogg   

原文地址:https://www.cnblogs.com/youcong/p/9629705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!