當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript的stack overflow
生活随笔
收集整理的這篇文章主要介紹了
javascript的stack overflow
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫一個很簡單的頁面和腳本
?1<html>?2<head>
?3<title>fanweixiao's?test</title>
?4<script?type="text/javascript">
?5function?onclick()
?6{
?7????alert('范維肖');
?8}
?9</script>
10</head>
11<body>
12<input?type="button"?id="btn1"?onclick="onclick();"?value="go"/>
13</body>
?
相當簡單的程序,在firefox上跑是沒有問題的,但是在ie上就是沒有預想的結果。很失誤的隨便起來一個叫onclick的function name,后來在這里找到了對該問題的解釋:
onclick 事件觸發后先在當前的上下文(btn1對象)中尋找,然后再作用域鏈(scope chain)和global function里找,當在當前上下文中找onclick(="onlick",要執行的函數),但是不巧的是btn1里有一個屬性叫onclick了(就是這個event),他的值又是onclick,因此無限產生了遞歸調用。最終導致stack overflow。
而firefox很酷的在假死了一會后正確的顯示出了結果,不過firebug提示了一個錯誤:
firefox很酷的知道有太多的遞歸,但是最酷的是他最終能執行到我們定義的onlick(),是不是ff會在發現死循環后破壞規則去global里找到了真正的onclick?希望有知道內情的朋友指點一下。
轉載于:https://www.cnblogs.com/fanweixiao/archive/2008/09/02/1281675.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的javascript的stack overflow的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql漏洞包_MySQL npm包中
- 下一篇: Spring中AOP切面编程学习笔记