之间有什么区别
var dfd = new $.Deferred
和
var dfd = $.Deferred
在哪些情况下你需要使用new而不使用它?
答案 0 :(得分:9)
jQuery official documentation说:
“jQuery.Deferred()构造函数创建一个新的Deferred对象.new运算符是可选的。”
所以我认为使用明智,无论你是从Deferred创建一个新对象还是按原样使用它都没有任何区别。
答案 1 :(得分:8)
这两个不相等,一个创建一个不同的对象,而另一个创建一个别名
var dfd = new $.Deferred
它创建了一个延迟对象实例,用于创建新实例,不需要使用新关键字 - 您只需说var dfd = $.Deferred()
var dfd = $.Deferred
它为类型$.Deferred
所以我认为没有必要在任何地方使用第二种格式,如果你想创建一个快捷方式,我希望如此。您可以使用第一种格式来创建延迟对象的新实例
答案 2 :(得分:3)
var dfd1 = $.Deferred();
var dfd2 = new $.Deferred;
var dfd3 = new $.Deferred();
每个都创建一个新的Deferred对象。 new
是可选的,因为$ .Deferred是factory function。
var wtf = $.Deferred;
正如@ArunPJohny指出的那样,它只是将工厂函数别名化。它不会创建Deferred对象。