本帖最后由 zfy2442 于 2014-01-15 12:05:54 编辑

解决方案 »

  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);//???
    ???????
    好纠结的问题啊!
    ???????
      

  2.   

    完全不知道LZ想表达的意思,你自己传个0进去,想变成1出来?
    return o+1????
      

  3.   


    ??
    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.
      

  4.   

    function par(o){ 
            return o+1;//这样??如果真是这样,那这叫啥问题呀..... 
        } 
      
        function a(callback) {     
            return callback();  
        }  
      
        function b(o){  
            alert("我是回调函数b,传递的参数是" + o); 
        } 
      
        function test() {  
          
            a(function (){ 
                b(par(0)); 
            });  
        } 
      

  5.   


    ??
    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值处理下面的业务.
      

  6.   

    因为a有其它的业务逻辑,这只是个demo。我就省掉了其它的表达式,所有在test的时候还是有必要执行的a的。
     在这里我就在想在allback执行前将par的值变成成1或其它值,b再根据新取来的par值处理下面的业务. 
      

  7.   


    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));
            }); 
        }
      

  8.   

            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));
                });
            }有参数为何不传?
      

  9.   

    根据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,你到底想表达什么呢?严重混乱