js XMLHttpRequest.onreadystatechange里怎么把变量设置为全局变量

 function MeshModel(url,flag)
        {           
            var CellsNum;

            var oReq = new XMLHttpRequest();
            oReq.open("GET", url, true);
            oReq.responseType = "arraybuffer";
            oReq.send(); 

            oReq.onreadystatechange = function () {
            if (oReq.readyState == oReq.DONE) {
            var arrayBuffer = oReq.response;
            var dataView = new DataView(arrayBuffer);               

            CellsNum = dataView.getInt32(flag,true);        //这里可以读出CellsNum 的值
            }           
        };

            this.getCellsNum = function(){

                return CellsNum;
            };          
        }   

    function main(){

        var url= "http://localhost:8080/Obj/TT.rtd";
        var m = new MeshModel(url, 2);
        document.write(m.getCellsNum()); //  显示undefined
    }

    我想访问CellsNum, 但显示为undefined,应该怎么改进。大神帮帮忙

ajax改同步的,异步的话没搞,因为执行 document.write(m.getCellsNum());这句的时候还没执行onreadystatechange 里面的 CellsNum = dataView.getInt32(flag,true); 设置值,只能得到undefined

         oReq.open("GET", url, true);
                ///////同步
        oReq.open("GET", url, false);///////同步

把所有的CellsNum改成this.CellsNum

定义的时候,放到函数外面