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