推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
OMGZui

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

  •  
  •   OMGZui · Apr 2, 2018 · 6306 views
    This topic created in 3141 days ago, the information mentioned may be changed or developed.
    # 这是原方法
    function loadImgUseQiNiu(clickBtn,upload_token,cb){}
    
    # 这是他改的
    function loadImgUseQiNiu(clickBtn,upload_token,size,cb){}
    

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

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

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

    就可以兼容老传参了。
    odirus
    odirus
    Apr 2, 2018
    7
    以前写动态语言我都写怕了。。。
    OMGZui
    OMGZui
    OP
    Apr 2, 2018
    8
    @gen900 这是一个方法,但是那家伙就是暴力的加在了前面,然后改了他自己调用的地方,不管其它地方,真的服
    qiuyk
    qiuyk
    Apr 2, 2018
    9
    多人合作还是上 ts 比较保险
    Tneciv
    Tneciv
    Apr 2, 2018
    10
    多谢 Java 给了我一条生路
    CYKun
    CYKun
    Apr 2, 2018 via Android
    11
    多谢 Java 给了我一条生路
    quickma
    quickma
    Apr 2, 2018
    12
    多谢 Java 给了我一条生路
    willvvvvv1
    willvvvvv1
    Apr 2, 2018
    13
    多谢 Java 给了我一条生路
    broadliyn
    broadliyn
    Apr 2, 2018
    14
    多谢 Java 给了我一条生路
    eslizn
    eslizn
    Apr 2, 2018
    15
    实在不行不能 loadImgUseQiNiu(options)吗?
    scnace
    scnace
    Apr 2, 2018 via Android
    16
    没有 CodeReview 的吗?
    h1367500190
    h1367500190
    Apr 2, 2018
    17
    就算目前只传一个参数我也会这么写:
    function loadImgUseQiNiu({ clickBtn, upload_token, size, cb }){}
    jmc891205
    jmc891205
    Apr 2, 2018
    18
    多谢 C++ 给了我一条生路
    xrlin
    xrlin
    Apr 2, 2018 via iPhone
    19
    静态类型保平安,每次改 ruby 代码我都有点不放心,js 代码也是,所以新项目还是上 ts。这也是你们接口没商量好的问题吧。
    imswing
    imswing
    Apr 2, 2018 via iPhone
    20
    可能习惯回掉放最后了。。。
    duan602728596
    duan602728596
    Apr 2, 2018 via iPhone
    21
    js 表示这个锅它不想背......
    msg7086
    msg7086
    Apr 3, 2018
    22
    @xrlin 没测试写什么 Ruby (手动滑稽
    znood
    znood
    Apr 3, 2018 via iPhone
    23
    这算什么,以前有同事复写 read,write 接口,两个函数参数顺序是相反的
    xrlin
    xrlin
    Apr 3, 2018 via iPhone
    24
    @msg7086 是的,写 ruby 必须要有测试加持,否则项目一大就要垮了,只是需求太多了,一个人做不来,更不用想测试了。
    guokeke
    guokeke
    Apr 3, 2018 via Android
    25
    函数参数都搞成对象啊
    kemikemian
    kemikemian
    Apr 3, 2018
    26
    第一个参数驼峰,第二个下划线
    orm
    orm
    Apr 3, 2018
    27
    多谢 Java 给了我一条生路
    zhouyg
    zhouyg
    Apr 3, 2018
    28
    明显是坑货,js 不背这个锅。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1090 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 17:12 · PVG 01:12 · LAX 09:12 · JFK 12:12
    ♥ Do have faith in what you're doing.