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

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

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

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

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