首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

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

  •  
  •   OMGZui · 2018-04-02 15:58:41 +08:00 · 3110 次点击
    这是一个创建于 569 天前的主题,其中的信息可能已经有所发展或是发生改变。
    # 这是原方法
    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
        1
    lkj007   2018-04-02 16:03:14 +08:00
    我觉得正常啊,cb 是一个回调,是应该放在最后面呀
        2
    zjp   2018-04-02 16:05:13 +08:00 via Android   ♥ 1
    充分体现了静态语言的优势 :doge:
    改接口不沟通,不用默认参数,还有这命名都是槽点…
        3
    murmur   2018-04-02 16:06:24 +08:00
    java 和 javascript 一词之差体验差了不知道哪里去了
        4
    OMGZui   2018-04-02 16:10:53 +08:00
    @lkj007 一般是放最后面,但是改了居然不说的,很多地方都得用这个方法
        5
    OMGZui   2018-04-02 16:13:24 +08:00
    @zjp 2333,这里用了默认参数还是得报那个错,老前辈留下来的代码了,我是怕了改代码的这家伙了,重新封装了一次,自己调用。
        6
    gen900   2018-04-02 16:13:30 +08:00
    其实是没处理好,新版本的接口加上

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

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