它们之间的区别是什么
var dfd = new $.Deferred和
var dfd = $.Deferred在哪些情况下,你需要使用new而不是不使用它?
发布于 2013-05-14 12:21:49
这两个并不相等,一个创建区分对象,而另一个创建别名
var dfd = new $.Deferred它创建了一个延迟对象实例,对于创建一个新实例,不需要使用new关键字-您可以只使用var dfd = $.Deferred()
var dfd = $.Deferred它为类型$.Deferred创建一个别名
所以我不认为在任何地方都需要使用第二种格式,除非你想创建一个快捷方式。可以使用第一种格式创建延迟对象的新实例
发布于 2013-07-12 11:51:37
jQuery official documentation说:
“jQuery.Deferred()构造函数创建一个新的延迟对象。新运算符是可选的。”
所以我猜用法是明智的,无论你是从延迟创建一个新对象还是按原样使用它,都不会有任何区别。
发布于 2017-09-05 02:41:57
这些是相同的:
var dfd1 = $.Deferred();
var dfd2 = new $.Deferred;
var dfd3 = new $.Deferred();每一个都创建一个新的Deferred对象。new是可选的,因为$.Deferred是factory function。
这可能是无稽之谈:
var wtf = $.Deferred;正如@ArunPJohny指出的,它只是工厂函数的别名。它不会创建延迟对象。
https://stackoverflow.com/questions/16534978
复制相似问题