首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$.Deferred vs新$.Deferred

$.Deferred vs新$.Deferred
EN

Stack Overflow用户
提问于 2013-05-14 12:11:40
回答 3查看 1.8K关注 0票数 9

它们之间的区别是什么

代码语言:javascript
复制
var dfd = new $.Deferred

代码语言:javascript
复制
var dfd = $.Deferred

在哪些情况下,你需要使用new而不是不使用它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-14 12:21:49

这两个并不相等,一个创建区分对象,而另一个创建别名

代码语言:javascript
复制
var dfd = new $.Deferred

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

代码语言:javascript
复制
var dfd = $.Deferred

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

所以我不认为在任何地方都需要使用第二种格式,除非你想创建一个快捷方式。可以使用第一种格式创建延迟对象的新实例

票数 8
EN

Stack Overflow用户

发布于 2013-07-12 11:51:37

jQuery official documentation说:

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

所以我猜用法是明智的,无论你是从延迟创建一个新对象还是按原样使用它,都不会有任何区别。

票数 10
EN

Stack Overflow用户

发布于 2017-09-05 02:41:57

这些是相同的:

代码语言:javascript
复制
var dfd1 = $.Deferred();
var dfd2 = new $.Deferred;
var dfd3 = new $.Deferred();

每一个都创建一个新的Deferred对象。new是可选的,因为$.Deferred是factory function

这可能是无稽之谈:

代码语言:javascript
复制
var wtf = $.Deferred;

正如@ArunPJohny指出的,它只是工厂函数的别名。它不会创建延迟对象。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16534978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档