//这里的arguments.length == 0是什么意思 ??
    if(arguments.length == 0)
因为首次调用,所有没有参数看callback(objXMLHttp);sendReq: function (method, url, data, callback)XMLHttp.sendReq("POST", url, "", doPageLoad);//这里的doPageLoad是做什么用的 是不是得到数据后再来执行doPageLoad方法,如果得到了那个arguments.length就会>0
        XMLHttp.sendReq("POST", url, "", doPageLoad);
用来做回调函数的else
    {
        //是不是这里Post到数据的话就赋值
        var xml = arguments[0].responseXML;
        //以下略
    }
这里是第二次调用doPageLoad时转入的,
就是在XMLHttp.sendReq("POST", url, "", doPageLoad)这一句里调用的
这时arguments[0] == callback(objXMLHttp)中的objXMLHttp
这样一来arguments[0].responseXML就有数据了,当然可以赋值咯

解决方案 »

  1.   

    if(arguments.length == 0)
    这个是指在没有参数的情况下XMLHttp.sendReq("POST", url, "", doPageLoad);
    你这个指的是:onreadystatechange = function (){
                            if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304)){
                                callback(objXMLHttp);
                            }
                        }
    执行这里callback(objXMLHttp);也就是doPageLoad(objXMLHttp);这样函数doPageLoad就带有参数了,那么他就会执行
    {
            //是不是这里Post到数据的话就赋值
            var xml = arguments[0].responseXML;
            //以下略
        }语句
      

  2.   

    你得结合着看
    arguments表示方法的参数    // 发送请求(方法[post,get], 地址, 数据, 回调函数)
        sendReq: function (method, url, data, callback)
    ……
    callback(objXMLHttp);
    ……
    doPageLoad这个函数是参数中的回调函数
    sendReq中有调用这个回调函数
    arguments[0]就是传入的objXMLHttp