日期:2014-05-16  浏览次数:20358 次

JavaScript面向对象里面的类应该如何写?谁帮我看下这段程序为什么跑不起来
我想把AJAX封装到类里面去,可是又不知道该如何写程序,写了一段却跑不起来,谁来帮我看下这段都有什么错误
<html>
<head>
<meta charset="utf-8" />
<title>AJAX Login Example</title>
<script src="http://192.168.1.63/common/class_ajax.js"></script>
<script>
// <![CDATA[
window.onload = function()
{
var ajax = new class_ajax();
}

function handle()
{
if (ajax.state == 4)
{
if (ajax.staus == 200)
{
document.write("This is function handle");
}
}
}

function sendmessage()
{
ajax.open("http://192.168.1.63/login/json.txt");
ajax.handle = handle;
ajax.send(NULL);

}
// ]]>
</script>
</head>
<body>
<form>
<input type="button" onsubmit="sendmessage(); return FALSE;" />
</form>
</body>
</html>


下面的类的函数class_ajax.js
function class_ajax()
{
var request;
var browser = navigator.appName;
this.state;
this.status;
this.handle;
this.text;

if(browser != "Microsoft Internet Explorer")
{
request = new XMLHttpRequest();
}else{
var arrVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
for (var i=0; i < arrVersions.length; i++)
{
try
{
request = new ActiveXObject(arrVersions[i]);
}
catch(exception)
{
}
}
}

this.open = function(var url, var method = 0)
{
if (method === 0)
{
return request.open("GET", url, true);
}
else
{
return request.open("POST", url, true);
}
}

this.send = function(var data)
{
return send(data);
}

this.change = function()
{
request.onreadystatechange = onreadystatechange;
}

var onreadystatechange(var state, var handle)
{
this.state = request.readyState;
this.status = request.status;
this.text = request.responseText;
this.handle();

}
}
javascript ajax xmlhttprequest

------解决方案--------------------
问题太多了,形参不要加var,JS形参没有默认值的。

this.open = function(var url, var method = 0)

this.open = function(url, method)


var onreadystatechange = function(state, handle)
    {
        this.state = request.readyState;
        this.status = requ