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

最新文章

  1. 软工_个人项目反(shai)思(zhao)
  2. js获取上一个月、下一个月格式为yyyy-mm-dd的日期
  3. hdu 1213 How Many Tables 解题报告
  4. 【Linux学习】 包含子目录的makefile简单应用
  5. mount, findmnt,df命令
  6. [转]mac下Python升级到指定的版本
  7. 【机房系统知识小结点系列】之遍历窗体中的控件,判断Text是否为空?
  8. struts.xml的配置
  9. Android仿人人客户端(v5.7.1)——新鲜事之完整篇
  10. 执行 apt-get -f install 提示错误
  11. 第五章 MVC之 FileResult 和 JS请求二进制文件
  12. 28.C++- 单例类模板(详解)
  13. jQuery 选择器 prop() 和attr()
  14. 常用的当前时间(返回String类型)
  15. 使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(二)
  16. js基础学习
  17. mysql查看变量/配置文件位置
  18. c#子线程线程中操作窗体更新的报错
  19. PyCharm for Mac(Python 开发工具)破解版安装
  20. adobe acrobat 无效批注对象

热门文章

  1. Rabbit主题交换机
  2. 简单的CRUD(一)
  3. zookeeper【2】集群管理
  4. Heka 的编译
  5. windows 2003 安装 MVC 环境 404错误,无法找到该页
  6. 01_Zookeeper简述
  7. Android setTag()/getTag()
  8. 用Eclipse创建第一个Spring项目(最最入门级)
  9. 使用 Azure CLI 2.0 从自定义磁盘创建 Linux VM
  10. docker images存放路径指定