2012-01-19 121 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