急,在线等!一个回调函数非常纠结的问题.... 本帖最后由 zfy2442 于 2014-01-15 12:05:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也非常纠结。该怎么去理解??function test() { a(function (){ b(par(0)); }); }//由于a是直接运行callback,因此:function test() { (function (){ b(par(0)); })();}//也就是说test函数相当于只运行了b(par(0));//par(o) 直接return o;,因此par(0)相当于就是0,//于是b(par(0))==> b(0) ==> alert("我是回调函数b,传递的参数是" + 0);//??????????好纠结的问题啊!??????? 完全不知道LZ想表达的意思,你自己传个0进去,想变成1出来?return o+1???? ??function test() { a(function (){ b(par(0)); }); }//由于a是直接运行callback,因此:function test() { (function (){ b(par(0)); })();}//也就是说test函数相当于只运行了b(par(0));//par(o) 直接return o;,因此par(0)相当于就是0,//于是b(par(0))==> b(0) ==> alert("我是回调函数b,传递的参数是" + 0);//??????????好纠结的问题啊!???????我的意思是在执行回调函数前,将par的值变成1.后面执行回调程序b的时候alert能弹出最新的par值.而不是最初在test函数给个赋par的值0. function par(o){ return o+1;//这样??如果真是这样,那这叫啥问题呀..... } function a(callback) { return callback(); } function b(o){ alert("我是回调函数b,传递的参数是" + o); } function test() { a(function (){ b(par(0)); }); } ??function test() { a(function (){ b(par(0)); }); }//由于a是直接运行callback,因此:function test() { (function (){ b(par(0)); })();}//也就是说test函数相当于只运行了b(par(0));//par(o) 直接return o;,因此par(0)相当于就是0,//于是b(par(0))==> b(0) ==> alert("我是回调函数b,传递的参数是" + 0);//??????????好纠结的问题啊!???????因为a有其它的业务逻辑,这只是个demo。我就省掉了其它的表达式,所有在test的时候还是有必要执行的a的。在这里我就在想在allback执行前将par的值变成成1,b再根据新取来的par值处理下面的业务. 因为a有其它的业务逻辑,这只是个demo。我就省掉了其它的表达式,所有在test的时候还是有必要执行的a的。 在这里我就在想在allback执行前将par的值变成成1或其它值,b再根据新取来的par值处理下面的业务. function par(o){ return o; } //业务逻辑处理函数 function a(callback) { //根据不同业务处理将返回值赋值给par return callback(); } //根据业务逻辑a的处理结果进行其它操作 function b(o){ //业务处理表达式 if(o==0){ //表达式...... }else if(o==1) { //表达式...... } else if(o==2) { //表达式...... } alert("我是回调函数b,传递的参数是" + o); } //某事件函数 function test() { a(function (){ b(par(0)); }); } function par(o) { return o; } function a(callback) { var num; //进行了一系列操作 num = 1; return callback(num); } function b(o) { alert("我是回调函数b,传递的参数是" + o); } function test() { a(function (o) { b(par(o)); }); }有参数为何不传? 根据LZ的逻辑描述.a的结果是要交给par当成参数的,但a的结果又要交给b,那我的理解就是先交给par,然后将par的返回值交给b那不就是:b(par(a(function(){return 1;})))但LZ前面又讲了:"这里我就在想在callback执行前将par的值变成成1或其它值,b再根据新取来的par值处理下面的业务. "那不就是:b(a(function(){return par(0)}))所以,LZ,你到底想表达什么呢?严重混乱 为什么我的jqGrid显示不出来 javascript上传 几个正则求解释 如果实现弹出选择文件夹的对话框 DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN 导致javascript 不执行 高分求救,在线等待:如何禁止滚轮事件? 正则表达式问题 一个简单问题? 请问怎样获得用户输入的Address IE6 导出WPS表格问题 求一个匹配包换环境变量的文件路径的正则表达式 请问在localhost域里放一个iframe,能获取iframe里DOM的内容吗?
??
function test() {
a(function (){
b(par(0));
});
}
//由于a是直接运行callback,因此:
function test() {
(function (){
b(par(0));
})();
}//也就是说test函数相当于只运行了b(par(0));
//par(o) 直接return o;,因此par(0)相当于就是0,
//于是b(par(0))==> b(0) ==> alert("我是回调函数b,传递的参数是" + 0);//???
???????
好纠结的问题啊!
???????
return o+1????
??
function test() {
a(function (){
b(par(0));
});
}
//由于a是直接运行callback,因此:
function test() {
(function (){
b(par(0));
})();
}//也就是说test函数相当于只运行了b(par(0));
//par(o) 直接return o;,因此par(0)相当于就是0,
//于是b(par(0))==> b(0) ==> alert("我是回调函数b,传递的参数是" + 0);//???
???????
好纠结的问题啊!
???????
我的意思是在执行回调函数前,将par的值变成1.后面执行回调程序b的时候alert能弹出最新的par值.而不是最初在test函数给个赋par的值0.
return o+1;//这样??如果真是这样,那这叫啥问题呀.....
}
function a(callback) {
return callback();
}
function b(o){
alert("我是回调函数b,传递的参数是" + o);
}
function test() {
a(function (){
b(par(0));
});
}
??
function test() {
a(function (){
b(par(0));
});
}
//由于a是直接运行callback,因此:
function test() {
(function (){
b(par(0));
})();
}//也就是说test函数相当于只运行了b(par(0));
//par(o) 直接return o;,因此par(0)相当于就是0,
//于是b(par(0))==> b(0) ==> alert("我是回调函数b,传递的参数是" + 0);//???
???????
好纠结的问题啊!
???????
因为a有其它的业务逻辑,这只是个demo。我就省掉了其它的表达式,所有在test的时候还是有必要执行的a的。
在这里我就在想在allback执行前将par的值变成成1,b再根据新取来的par值处理下面的业务.
在这里我就在想在allback执行前将par的值变成成1或其它值,b再根据新取来的par值处理下面的业务.
function par(o){
return o;
}
//业务逻辑处理函数
function a(callback) {
//根据不同业务处理将返回值赋值给par
return callback();
}
//根据业务逻辑a的处理结果进行其它操作
function b(o){
//业务处理表达式
if(o==0){
//表达式......
}else if(o==1)
{
//表达式......
}
else if(o==2)
{
//表达式......
}
alert("我是回调函数b,传递的参数是" + o);
}
//某事件函数
function test() {
a(function (){
b(par(0));
});
}
return o;
} function a(callback) {
var num;
//进行了一系列操作
num = 1;
return callback(num);
} function b(o) {
alert("我是回调函数b,传递的参数是" + o);
} function test() { a(function (o) {
b(par(o));
});
}有参数为何不传?
那不就是:b(par(a(function(){return 1;})))但LZ前面又讲了:"这里我就在想在callback执行前将par的值变成成1或其它值,b再根据新取来的par值处理下面的业务. "
那不就是:b(a(function(){return par(0)}))所以,LZ,你到底想表达什么呢?严重混乱