jQuery如何实现其Deferred对象,以便new
运算符在var x = $.Deferred();
中是可选的?
答案 0 :(得分:6)
这是实现这一目标的模式......
$.Deferred = function() {
if ( ! (this instanceof $.Deferred)) {
return new $.Deferred;
}
}
它起作用,因为构造函数中的this
设置为新对象。 instanceof
将告诉您LHS操作数是否在其原型链中具有RHS操作数。如果此条件不成立,则该函数将返回对象的实例化版本。