Home  >  Q&A  >  body text

javascript - 请大家帮我看一下,这段js代码是什么意思?

最近在研究apicloud,看到他们的demo里有一个api.js,里面有一段js我没看明白是什么意思,请大家帮我看一下。代码为:

function parseArguments(url, data, fnSuc, dataType) {
        if (typeof(data) == 'function') {
            dataType = fnSuc;
            fnSuc = data;
            data = undefined;
        }
        if (typeof(fnSuc) != 'function') {
            dataType = fnSuc;
            fnSuc = undefined;
        }
        return {
            url: url,
            data: data,
            fnSuc: fnSuc,
            dataType: dataType
        };
    }

它的使用为:

var argsToJson = parseArguments.apply(null, arguments);
黄舟黄舟2718 days ago355

reply all(1)I'll reply

  • 巴扎黑

    巴扎黑2017-04-11 12:56:07

    你要看是处理什么的

    u.post = function(/*url,data,fnSuc,dataType*/){
            var argsToJson = parseArguments.apply(null, arguments);
            //省略
            api.ajax(.....
            //省略

    下面还有get的
    处理的是u.post/get传的参数(其实是ajax)。
    然后很简单。
    参数是按照顺序对应的,url,data,fnSuc,dataType
    默认是四个参数:地址、数据、回调、数据类型。
    如果我使用时不需要某个参数呢?这个api提供了不需要可以不填且不需占位的方法,然后内部处理,此时可以这么用

    u.post(你的url,你的funSuc,你的dataType)
    那么此时函数内部的data接收的其实是funSuc,
    if (typeof(data) == 'function') 做的是使用者没有传递数据的处理
    同理
    if (typeof(fnSuc) != 'function') 做的是使用者没有传递回调函数的处理

    reply
    0
  • Cancelreply