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 · 5145 次点击
    这是一个创建于 2457 天前的主题,其中的信息可能已经有所发展或是发生改变。
    # 这是原方法
    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 给了我一条生路
    x7395759
        12
    x7395759  
       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   ·   实用小工具   ·   1055 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:09 · PVG 04:09 · LAX 12:09 · JFK 15:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.