2012-10-07 65 views
0

比方說,我加載包含此代碼的頁面:競爭條件與onload事件

<script> 
    function functionAlert() { 
     alert(window.myProperty); 
    } 

    function functionSetProperty() { 
     window.myProperty = "hello!"; 
    } 
    window.addEventListener('load', functionAlert, false); 
    functionSetProperty(); 
</script> 

就是比賽條件可能functionAlertfunctionSetProperty之前調用,在這種情況下,警報將顯示undefined

+0

爲什麼你不切換與functionSetProperty功能window.addEventListener線?然後你得到你想要的。但我認爲設計另一種方法會更好。 – Codebeat

+0

你是什麼意思,「得到你想要的」?這個問題不是爲了實現編程目標。我想了解一些關於窗口事件和JavaScript如何工作的信息。 – user5243421

回答

3

不,這是不可能的。基於瀏覽器的JavaScript是單線程的,阻止瀏覽器在執行時處理事件。

(我見過在野外一些例外,但他們都周圍的XmlHttpRequest中心。)