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/

10-12 12:25
查看更多