jQuery如何实现其Deferred对象,以便new
运算符与var x = $.Deferred();
中一样是可选的?
最佳答案
这是实现这一目标的一种模式...
$.Deferred = function() {
if ( ! (this instanceof $.Deferred)) {
return new $.Deferred;
}
}
之所以有效,是因为构造函数中的
this
设置为新对象。 instanceof
会告诉您LHS操作数是否在其原型(prototype)链中包含RHS操作数。如果此条件不成立,则该函数将返回该对象的实例化版本。关于jQuery.Deferred()- "new"运算符是可选的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11930222/