9

和有什么区别

var dfd = new $.Deferred

var dfd = $.Deferred

在哪些情况下您需要使用新的而不是使用它?

4

3 回答 3

10

jQuery 官方文档说:

“jQuery.Deferred() 构造函数创建了一个新的 Deferred 对象。new 运算符是可选的。”

所以我想在使用方面,无论你是从 Deferred 创建一个新对象还是按原样使用它,都不会有任何区别。

于 2013-07-12T03:51:36.580 回答
8

这两个不相等,一个创建一个不同的对象,而另一个创建一个别名

var dfd = new $.Deferred

它创建一个延迟对象实例,创建一个新实例不需要使用 new 关键字 - 你可以说var dfd = $.Deferred()

var dfd = $.Deferred

它为该类型创建一个别名$.Deferred

所以我认为没有必要在任何地方使用第二种格式,如果你想创建一个快捷方式。您可以使用第一种格式来创建延迟对象的新实例

于 2013-05-14T04:21:49.167 回答
5

这些是相同的:

var dfd1 = $.Deferred();
var dfd2 = new $.Deferred;
var dfd3 = new $.Deferred();

每个都创建一个新的Deferred对象。 new是可选的,因为 $.Deferred 是一个工厂函数

这大概是胡说八道:

var wtf = $.Deferred;

正如@ArunPJohny 指出的那样,它只是给工厂函数起别名。它不会创建 Deferred 对象。

于 2017-09-04T18:41:56.530 回答