Javascript,函数内部函数问题

Ulr*_*k M 1 javascript function

嘿,我正在使用一个javascript项目并遇到了一个我不明白的问题.这是代码,它不是我在项目中使用的代码,但它是一个简化版本.

var x;

function FetchBox() {alert("Worked");}

function A(m,n) { 
    x = new XMLHttpRequest(); 
    x.open("GET", m, true);
    x.onreadystatechange=function(){
        n(); 
        x.send();
    };
}

A("http://jsfiddle/echo/xml/", FetchBox);
Run Code Online (Sandbox Code Playgroud)

我可以轻松更改功能以使其工作:

function A(m,n) { 
    x = new XMLHttpRequest(); 
    x.open("GET", m, true);
    x.onreadystatechange=n();x.send();
}
Run Code Online (Sandbox Code Playgroud)

但在我更复杂的版本中,我想添加readyState函数和其他一些东西.

function A(m,n) { 
    x = new XMLHttpRequest(); 
    x.open("GET", m, true);
    x.onreadystatechange=
        if(x.readyState===4){
            n(); 
            x.send();
        };
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能在这个函数中包含一个函数?JsFiddle链接:http://jsfiddle.net/M6Upv/17/

祝周末愉快,Ulrik

Rad*_*kel 5

试试这种方式.

function A(m,n) { 
    x = new XMLHttpRequest(); 
    x.open("GET", m, true);
    x.onreadystatechange = function() {
        if(x.readyState===4) {
            n(); 
            //x.send(); //look below
        };
    }
    x.send() //I think, it should be here
}
Run Code Online (Sandbox Code Playgroud)