调用 javascript 表达式

invoke javascript expression

我已经通过开发人员工具在 chrome 中尝试了以下两个 javascript 函数,但是我认为当 js 解释器到达它时会调用第二个函数但没有。不知道为什么。

var x = function() { console.log("probably not invoked."); }

var x = function() { console.log("probably invoked."); };

x(); // I had to do this to invoke the function

测试这个背后的原因是我第一次使用 XmlHttpRequest,同时读取 属性 对象的名称状态 I 运行 到一段代码中,如下所示 我被告知 onreadystatechange 函数指针将被执行,所以我认为当 js 解释器到达它时,匿名函数上的分号会被执行吗?

function makeRequest() {
    .....
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            document.getElementById("status").innerHTML = (xhr.status == 200) ? "status good" : "status bad";
        }
    };
    xhr.send();

XMLHttpRequest 对象将查找存储在onreadystatechange 中的函数,并在就绪状态更改时调用它。

触发被调用函数的是事件触发,而不是赋值本身。

这类似于

document.body.onclick = function () { alert("You clicked!"); };

末尾的分号只是您(应该)在每个 JavaScript 语句后放置的常规分号。