嗨, 大家好: 网站在新年后正式开通,欢迎大家加入我们,共同维护一个良好氛围的中国技术社区。 欢迎举报不良帖子,欢迎提供建议。
我们的QQ群:136102234,欢迎进群找答案,里边会有很多资深的大师们。 point overflow

来源segmentfault.com

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

//方法2
bSend:function() {
    ...
    reports.b.update(...);
},

//方法3
cSend:function() {
    ...
    reports.c.update(...);
}

//有什么好的建议写成一个公共方法?(...基本没差别,有个别变量名改变)</code></pre>

提问了 2016-03-18 15:34:48

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%


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-18 15:35:21

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%

//flag "a","b","c"...
function send(flag){
    reports[flag].update(...);
}
永久链接

已回答 2016-03-18 15:35:29

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%

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

永久链接

已回答 2016-03-18 15:35:37

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%

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

永久链接

已回答 2016-03-18 15:35:44

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%

可以这样:

adcSend  function(flag){
//这里的flag代表传入参数,做个别修改
<!--差别部分-->
if(flag == "a"){
 //Todo
 //这里是a方法的个别修改
}else if(flag == "b"){
 //Todo
 //这里是b个别修改
}else {
//Todo
//这里是c个人修改
}
<!--这里是公共部分-->
//Todo
};
永久链接

已回答 2016-03-18 15:35:52

jkant's gravatar image

jkant ♦♦
11130137138
采纳率: 3%

你的回答
切换预览

关注这个问题

邮件:

登录之后,你可以在这里订阅任何更新。

RSS:

回答

回答和评论

Markdown基本语法

  • *italic* or _italic_
  • **bold** or __bold__
  • 链接:[文本](http://url.com/ "标题")
  • 图片?![alt 文本](/path/img.jpg "标题")
  • 编号列表: 1. Foo 2. Bar
  • 如果想要换行,只需要在前一行结尾处插入2个空格即可。
  • 支持基本HTML标记

问题标签:

×1

已提出的问题: 2016-03-18 15:34:48

问题浏览量: 580 次

最后更新: 2016-03-18 15:36:01

相关问题