2012-01-19 93 views
1

由于某种原因,JavaScript函数现在无法正常工作。JavaScript函数在铬中不起作用

function alert(){ 
alert('Close') 
} 

当我触发使用警报:

<span onclick="alert()">Hi</span> 

我收到以下错误:

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

可能是什么错误? jQuery有什么问题吗? (误差)

例子:http://jsfiddle.net/qNjjN/show

回答

2

这里的问题是,有一个原生的JavaScript函数调用alert和你基本上是与你的alert功能覆盖它。

当你调用你的函数时,你的函数会一遍又一遍地调用它自己。这被称为递归,在你的情况下导致你的错误。

+0

哇!我不敢相信我没有看到!谢谢! – Shawn31313 2012-01-19 00:24:45

6

你覆盖的用自己的缺省alert()功能!所以当你在方法中调用alert()时,它会进行无限递归调用。

重命名你的方法到别的东西,它会被罚款:)

+0

哇!我不敢相信我没有看到!谢谢! – Shawn31313 2012-01-19 00:24:30

0

通过调用本身的警报,可以实现无限循环。这可以作为递归函数,但目前没有逻辑可以自行结束。

+0

哇!我不敢相信我没有看到!谢谢! – Shawn31313 2012-01-19 00:24:55

相关问题