JavaScript中带有onload事件的争用条件

JavaScript中带有onload事件的争用条件,javascript,Javascript,假设我正在加载一个包含以下代码的页面: <script> function functionAlert() { alert(window.myProperty); } function functionSetProperty() { window.myProperty = "hello!"; } window.addEventListener('load', functionAlert, false);

假设我正在加载一个包含以下代码的页面:

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

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

函数functionAlert(){
警报(window.myProperty);
}
函数functionSetProperty(){
window.myProperty=“你好!”;
}
window.addEventListener('load',functionAlert,false);
functionSetProperty();

竞态条件是否可能在
functionSetProperty
之前调用
functionlert
,在这种情况下,警报将显示
undefined

否,这是不可能的。基于浏览器的JavaScript是单线程的,在执行时阻止浏览器处理事件


(我在野外见过一些例外,但它们都以XmlHttpRequest为中心。)

不,这是不可能的。基于浏览器的JavaScript是单线程的,在执行时阻止浏览器处理事件


(我在野外看到过一些例外,但它们都以XmlHttpRequest为中心。)

为什么不将window.addEventListener行与functionSetProperty函数切换?然后你得到了你想要的。但我认为最好设计另一种方法。你说的“得到你想要的”是什么意思?这个问题并不是为了实现一个编程目标。我想了解一些关于窗口事件和JavaScript的工作原理。为什么不将window.addEventListener行与functionSetProperty函数切换?然后你得到了你想要的。但我认为最好设计另一种方法。你说的“得到你想要的”是什么意思?这个问题并不是为了实现一个编程目标。我想学习一些关于窗口事件和JavaScript如何工作的知识。