调用javascript表达式

时间:2015-03-30 14:52:54

标签: javascript function expression execute

我已经通过开发人员工具在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同时读取对象的属性名称状态我遇到了一段代码如下所示我被告知onreadystatechange函数指针将被执行所以我认为有匿名分号当js解释器到达它时会执行函数吗?

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

1 个答案:

答案 0 :(得分:4)

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

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

这类似于

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

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