[吐槽] 你们遇到过给封装方法参数加在中间的坑货吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
OMGZui
V2EX    Javascript

[吐槽] 你们遇到过给封装方法参数加在中间的坑货吗

  •  
  •   OMGZui 2018-04-02 15:58:41 +08:00 5548 次点击
    这是一个创建于 2759 天前的主题,其中的信息可能已经有所发展或是发生改变。
    # 这是原方法 function loadImgUseQiNiu(clickBtn,upload_token,cb){} # 这是他改的 function loadImgUseQiNiu(clickBtn,upload_token,size,cb){} 

    我真是打人的心都有了,测试跟我说图片不能上传了,打开 console,报错,cb is not a function,我说怎么会有这种莫名的报错,打开改文件一看,我擦嘞,加了个参数,我说加就加呗,还加中间,此处摊手表情

    28 条回复    2018-04-03 15:42:03 +08:00
    lkj007
        1
    lkj007  
       2018-04-02 16:03:14 +08:00
    我觉得正常啊,cb 是一个回调,是应该放在最后面呀
    zjp
        2
    zjp  
       2018-04-02 16:05:13 +08:00 via Android   1
    充分体现了静态语言的优势 :doge:
    改接口不沟通,不用默认参数,还有这命名都是槽点…
    murmur
        3
    murmur  
       2018-04-02 16:06:24 +08:00
    java 和 Javascript 一词之差体验差了不知道哪里去了
    OMGZui
        4
    OMGZui  
    OP
       2018-04-02 16:10:53 +08:00
    @lkj007 一般是放最后面,但是改了居然不说的,很多地方都得用这个方法
    OMGZui
        5
    OMGZui  
    OP
       2018-04-02 16:13:24 +08:00
    @zjp 2333,这里用了默认参数还是得报那个错,老前辈留下来的代码了,我是怕了改代码的这家伙了,重新封装了一次,自己调用。
    gen900
        6
    gen900  
       2018-04-02 16:13:30 +08:00
    其实是没处理好,新版本的接口加上

    if (typeof size === 'function') cb = size;

    就可以兼容老传参了。
    odirus
        7
    odirus  
       2018-04-02 16:14:50 +08:00
    以前写动态语言我都写怕了。。。
    OMGZui
        8
    OMGZui  
    OP
       2018-04-02 16:18:16 +08:00
    @gen900 这是一个方法,但是那家伙就是暴力的加在了前面,然后改了他自己调用的地方,不管其它地方,真的服
    qiuyk
        9
    qiuyk  
       2018-04-02 16:22:00 +08:00
    多人合作还是上 ts 比较保险
    Tneciv
        10
    Tneciv  
       2018-04-02 17:08:17 +08:00
    多谢 Java 给了我一条生路
    CYKun
        11
    CYKun  
       2018-04-02 19:20:29 +08:00 via Android
    多谢 Java 给了我一条生路
    quickma
        12
    quickma  
       2018-04-02 19:24:22 +08:00
    多谢 Java 给了我一条生路
    willvvvvv1
        13
    willvvvvv1  
       2018-04-02 19:31:16 +08:00
    多谢 Java 给了我一条生路
    broadliyn
        14
    broadliyn  
       2018-04-02 19:57:25 +08:00
    多谢 Java 给了我一条生路
    eslizn
        15
    eslizn  
       2018-04-02 20:10:13 +08:00
    实在不行不能 loadImgUseQiNiu(options)吗?
    scnace
        16
    scnace  
       2018-04-02 20:10:54 +08:00 via Android
    没有 CodeReview 的吗?
    h1367500190
        17
    h1367500190  
       2018-04-02 22:16:33 +08:00
    就算目前只传一个参数我也会这么写:
    function loadImgUseQiNiu({ clickBtn, upload_token, size, cb }){}
    jmc891205
        18
    jmc891205  
       2018-04-02 22:53:56 +08:00
    多谢 C++ 给了我一条生路
    xrlin
        19
    xrlin  
       2018-04-02 23:31:17 +08:00 via iPhone
    静态类型保平安,每次改 ruby 代码我都有点不放心,js 代码也是,所以新项目还是上 ts。这也是你们接口没商量好的问题吧。
    imswing
        20
    imswing  
       2018-04-02 23:35:15 +08:00 via iPhone
    可能习惯回掉放最后了。。。
    duan602728596
        21
    duan602728596  
       2018-04-02 23:37:07 +08:00 via iPhone
    js 表示这个锅它不想背......
    msg7086
        22
    msg7086  
       2018-04-03 03:41:49 +08:00
    @xrlin 没测试写什么 Ruby (手动滑稽
    znood
        23
    znood  
       2018-04-03 08:28:14 +08:00 via iPhone
    这算什么,以前有同事复写 read,write 接口,两个函数参数顺序是相反的
    xrlin
        24
    xrlin  
       2018-04-03 08:49:22 +08:00 via iPhone
    @msg7086 是的,写 ruby 必须要有测试加持,否则项目一大就要垮了,只是需求太多了,一个人做不来,更不用想测试了。
    guokeke
        25
    guokeke  
       2018-04-03 09:41:07 +08:00 via Android
    函数参数都搞成对象啊
    kemikemian
        26
    kemikemian  
       2018-04-03 14:00:59 +08:00
    第一个参数驼峰,第二个下划线
    orm
        27
    orm  
       2018-04-03 15:02:37 +08:00
    多谢 Java 给了我一条生路
    zhouyg
        28
    zhouyg  
       2018-04-03 15:42:03 +08:00
    明显是坑货,js 不背这个锅。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     990 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 19:11 PVG 03:11 LAX 12:11 JFK 15:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86