各位大神,有什么好的建议写成一个公共方法?

    //方法1
    aSend:function() {
        ...
        reports.a.update(...);
    },

    //方法2
    bSend:function() {
        ...
        reports.b.update(...);
    },
    
    //方法3
    cSend:function() {
        ...
        reports.c.update(...);
    }
    
    //有什么好的建议写成一个公共方法?(...基本没差别,有个别变量名改变)
阅读 1.5k
评论 2016-03-15 提问
    5 个回答
    learning
    • 2.4k
    function send(flag, callback) {
      // 检测 reports[flag] 是否存在
      if (if reports[flag] && typeof reports[flag].update === 'function') {
        reports[flag].update(callback);
      }
    }
    
    send('a', function (data) {
      console.info('success a:', data);
    });
    评论 赞赏 2016-03-15
      wolfx
      • 972
      //flag "a","b","c"...
      function send(flag){
          reports[flag].update(...);
      }
      评论 赞赏 2016-03-15

        公共方法,最好是封装成一个大的函数体,可以实现n个变量的,就好像那些分页插件,那种分装很好,代码重用率很高,不过需要很强的逻辑能力

        评论 赞赏 2016-03-15
          Rming
          • 646

          难道不是 reports[var].update(...);

          评论 赞赏 2016-03-15

            可以这样:

            adcSend  function(flag){
            //这里的flag代表传入参数,做个别修改
            <!--差别部分-->
            if(flag == 'a'){
             //Todo
             //这里是a方法的个别修改
            }else if(flag == 'b'){
             //Todo
             //这里是b个别修改
            }else {
            //Todo
            //这里是c个人修改
            }
            <!--这里是公共部分-->
            //Todo
            };
            评论 赞赏 2016-03-15
              撰写回答

              登录后参与交流、获取后续更新提醒