通过arugments对象

时间:2016-05-22 18:15:59

标签: jquery

我想完美地包装jquery帖子并获取。是否有可能通过参数对象?

function myPost(){
   return $.post(arguments);
}

执行上述操作无效,因为它是作为对象传递的。

否则我必须以某种方式包装

jQuery.each( [ "get", "post" ], function( i, method ) {
    jQuery[ method ] = function( url, data, callback, type ) {
        // shift arguments if data argument was omitted
        if ( jQuery.isFunction( data ) ) {
            type = type || callback;
            callback = data;
            data = undefined;
        }

        return jQuery.ajax({
            url: url,
            type: method,
            dataType: type,
            data: data,
            success: callback
        });
    };
});

1 个答案:

答案 0 :(得分:2)

您正在寻找apply()

function myPost() {
    return $.post.apply($, arguments);
}

使用apply,您可以传递一个数组,该数组将用于调用函数,第一个参数设置为第一个数组元素,第二个参数设置为第二个,等等。

ES6 Spread Operator

使用ES6 spread operator,您可以这样做:

function myPost() {
    return $.post(...arguments);
}