var
OverWritingDemonstrate=Class.create();
OverWritingDemonstrate.
prototype
={
xml_source:
''
,
initialize:
function
(){
},
putRequest:
function
(url,params,callBackFunction){
var
funcHolder=
arguments
.
callee
.$;
var
xmlHttp =
new
Ajax.Request(url,
{
method:
'get'
,
parameters: params,
requestHeaders:[
'my-header-encoding'
,
'utf-8'
],
onFailure:
function
(){
alert
(
'
对不起,网络通讯失败,请重新刷新!
'
);
},
onSuccess:
function
(transport){
},
onComplete:
function
(transport){
this.xml_source=transport.responseText;
this.showXMLResponse();
}
});
},
//
显示
xml
信息
showXMLResponse:
function
(){
alert
(this.xml_source);
},
…
}
|
//
类工具
var
ClassUtils=Class.create();
ClassUtils.
prototype
={
_ClassUtilsName:
'ClassUtils'
,
initialize:
function
(){
},
/**
*
给类的每个方法注册一个对类对象的自我引用
*
@param
reference
对类对象的引用
*/
registerFuncSelfLink:
function
(reference){
for
(
var
n
in
reference) {
var
item = reference[n];
if
(item
instanceof
Function
)
item.$ = reference;
}
}
}
|
//Ajax
操作封装类:
//
由于调用
AjaxRequest
类进行
XMLHTTPRequest
操作时,
this
引用(指向当前的对象)会出现了
call
stack
问题,从而指向当前的对象。
//
所以,对
putRequest
、
callBackHandler
、以及
callback
方法都要使用
arguments.callee.$
来获得正确的类对象引用
var
AjaxWrapper=Class.create();
AjaxWrapper.
prototype
={
xml_source:
''
,
/**
*
初始化
*
@param
isDebug
是否显示调试信息
*/
initialize:
function
(isDebug){
new
ClassUtils().registerFuncSelfLink(
this
);
},
putRequest:
function
(url,params,callBackFunction){
var
funcHolder=
arguments
.
callee
.$;
var
xmlHttp =
new
Ajax.Request(url,
{
method:
'get'
,
parameters: params,
requestHeaders:[
'my-header-encoding'
,
'utf-8'
],
onFailure:
function
(){
alert
(
'
对不起,网络通讯失败,请重新刷新!
'
);
},
onSuccess:
function
(transport){
},
onComplete:
function
(transport){
funcHolder
.xml_source=transport.responseText;
funcHolder
.showXMLResponse();
}
});
},
//
显示
xml
信息
showXMLResponse:
function
(){
alert
(
funcHolder
.xml_source);
},
…
}
|