我已经通过开发人员工具在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();
答案 0 :(得分:4)
XMLHttpRequest对象将查找存储在onreadystatechange
中的函数,并在就绪状态更改时调用它。
事件触发会触发被调用的函数,而不是赋值本身。
这类似于
document.body.onclick = function () { alert("You clicked!"); };
结尾处的分号只是您(应该)在每个JavaScript语句之后放置的常规分号。