请大家帮我看一下,这段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);
阅读 2k
1 个回答

你要看是处理什么的

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') 做的是使用者没有传递回调函数的处理
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题