var
dataFromBrowse
=
"
data from browse
"
;
function callBackProxy(dataFromServer) {
callbackFun(dataFromServer, dataFromBrowse);
} ;
function callbackFun(dataFromServer, dataFromBrowse) {
alert(dataFromBrowse);
alert(dataFromServer);
} ;
function say() {
var data;
data = DWRUtil.getValue("content");
helloworld.sayHello(data,callBackProxy);
}
function callBackProxy(dataFromServer) {
callbackFun(dataFromServer, dataFromBrowse);
} ;
function callbackFun(dataFromServer, dataFromBrowse) {
alert(dataFromBrowse);
alert(dataFromServer);
} ;
function say() {
var data;
data = DWRUtil.getValue("content");
helloworld.sayHello(data,callBackProxy);
}
本来我们是用helloworld.sayHello(data,你的回调函数名)来实现的。
但,如果我们想在client这边给我们的回调函数多一些参数,以实现多一些功能,而不仅仅在页面只能利用server端给我们发来的一个数据data,就要用上面的方法。
原理是这样的,我们还是在helloworld.sayHello(data,callBackProxy)填写了一个回调函数,不过它只是一个代理函数,真正做事的是callbackFun,它由callBackProxy在里面调用它。
而这时由于闭包的特性,内函数可以用到外函数的参数变量,所以就实现了多参数的功能。