5
new
演算子がvar x = $.Deferred();
のようにオプションになるように、jQueryはそのDeferredオブジェクトをどのように実装しますか?ここでjQuery.Deferred() - "new"演算子はオプションですか?
new
演算子がvar x = $.Deferred();
のようにオプションになるように、jQueryはそのDeferredオブジェクトをどのように実装しますか?ここでjQuery.Deferred() - "new"演算子はオプションですか?
はそれを達成するためのパターンです...
$.Deferred = function() {
if (! (this instanceof $.Deferred)) {
return new $.Deferred;
}
}
コンストラクタでthis
が新しいオブジェクトに設定されているので、それが動作します。 instanceof
は、LHSオペランドのプロトタイプチェーンにRHSオペランドがあるかどうかを教えてくれます。この条件が真でない場合、関数はオブジェクトのインスタンス化されたバージョンを返します。
すばらしい説明、ありがとう! – Kay