【发布时间】:2015-06-12 00:58:22
【问题描述】:
我想用一种新方法扩展$.Deferred,该方法应该具有类似于Deferred.fail() 的签名。最好的方法是什么?
【问题讨论】:
-
因为 Defered 是一个对象而不是一个小部件,你可以用 $,Deffered.prototype.newFunc = function(){} 扩展它
-
@Dan Kuida 您的建议似乎不起作用:jsfiddle.net/alexarg/9c1f5rmj
-
首先在您发送的小提琴中,$.Deferred 没有定义。其次,您真正希望 si 扩展 $.Deferred() 返回的内容,而不是 $.Deferred 本身。有一个选项可以传递参数并在一次执行时扩展它 var def = $.Deferred(function(){this.test = function(){alert("test")}});因此,为了覆盖该函数的构造函数,您需要在其中插入上述方法。
-
我不同意,$.Deferred 是在 jsfiddle 中定义的。但是你说得对,我需要扩展 Deferred 函数返回的对象,而不是扩展函数本身。您关于传递函数的建议仅适用于使用函数参数创建的延迟对象,而我想为所有延迟对象启用该函数。
标签: jquery jquery-plugins jquery-deferred