开发者问题收集

按钮 onclick="onclick()" 引发最大堆栈错误[重复]

2016-11-23
440

我正在使用原生 JavaScript,偶然发现了一些奇怪的事情,不知道为什么会发生这种情况。我有纯 html 按钮 。我所做的就是设置 onclick="onclick()" 。当我运行它并单击按钮时,我看到控制台中出现错误。

控制台:

未捕获的 RangeError:超出最大调用堆栈大小

我不知道为什么会出现这个错误。我第一次看到这个。即使我提供了 onclick 的定义,错误仍然存​​在。有人能知道为什么会发生这种情况吗?

console.log(window.onclick);//It logs null
<button onclick="onclick()">Hit me
</button>
2个回答

onclick 更改为其他内容

<button onclick="clickme()">Hit me
</button>

当您 click 按钮时,它将调用您的函数 onclick ,该函数将再次调用 onclick 事件,因此它是一个永无止境的循环。

Mairaj Ahmad
2016-11-23

您需要重命名 onclick() 函数名。因为它每次都会调用自身。

Anand Systematix
2016-11-23