如何创建扩展$ .Deferred的jQuery插件?

时间:2015-06-11 01:10:23

标签: jquery jquery-plugins jquery-deferred

我希望使用一个新方法扩展$.Deferred,该方法应该具有类似于Deferred.fail()的签名。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

找到了一种方法。

我重写$。使用调用基函数的新函数进行延迟,并使用新方法扩展它返回的对象:

$._Deferred = $.Deferred;
$.Deferred = function (param) {
    var deferredToExtend = $._Deferred(param);

    deferredToExtend.test = function (param) {
        var deferred = $.Deferred();
        deferredToExtend.always(deferred.resolve.bind(deferred, param));
        return deferred.promise();
    };

    return deferredToExtend;
};

以下是jsfiddle