9

違いは何ですか

var dfd = new $.Deferred

var dfd = $.Deferred

new を使用する必要がある場合と、それを使用しない場合のどちらが必要ですか?

4

3 に答える 3

10

jQueryの公式ドキュメントには次のように書かれています:

「jQuery.Deferred() コンストラクターは、新しい Deferred オブジェクトを作成します。new 演算子はオプションです。」

したがって、使用方法に関しては、Deferred から新しいオブジェクトを作成するか、そのまま使用するかに違いはないと思います。

于 2013-07-12T03:51:36.580 に答える
8

これら 2 つは等しくありません。1 つは異なるオブジェクトを作成し、もう 1 つはエイリアスを作成します。

var dfd = new $.Deferred

遅延オブジェクト インスタンスを作成します。新しいインスタンスを作成するために new キーワードを使用する必要はありません。var dfd = $.Deferred()

var dfd = $.Deferred

タイプのエイリアスを作成します$.Deferred

したがって、ショートカットを作成する場合を除いて、どこでも2番目の形式を使用する必要はないと思います。最初の形式を使用して、遅延オブジェクトの新しいインスタンスを作成できます

于 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 に答える