6
A
答えて
7
ジョン・レシグはかなりこれを説明:http://ejohn.org/apps/learn/#36と基本的に
http://ejohn.org/apps/learn/#38、Event
関数とオブジェクト(関数はオブジェクトである)です。 Eventの最初の行は、関数として、または(new演算子を使用して)Eventオブジェクトのインスタンスとして呼び出されているかどうかをチェックします。
あなたは、具体的にjQueryはそれをしない方法を探している場合は、jQuery sourceのライン3134から3138を見て:
このためjQuery.Event = function(src, props) {
// Allow instantiation without the 'new' keyword
if (!this.preventDefault) {
return new jQuery.Event(src, props);
}
説明をthe jQuery formsです。
基本的には、3178-3194行でpreventDefaultイベントがEventプロトタイプに追加されます。イベントがnew
でインスタンス化されている場合、このpreventDefaultメソッドが与えられます。それ以外の場合は定義されません。
3
任意のユーザ定義のJavaScript関数は、new
演算子を使用して呼び出すことも、呼び出すこともできます。 new
がなければ、それは通常の関数と同じように機能します(それはそのためです)。 new
を使用すると、インタプリタはプロトタイプが適切に設定された新しいオブジェクトを作成し、そのオブジェクトを呼び出しのthis
パラメータにします。この新しいオブジェクトは、new
演算子の結果です。以外の場合は、関数本体return
が明示的に値です。戻り値はそれを管理します。
あなたは
function foo() {
return { bar: 42 };
}
を書くのであれば、あなたはなしかnew
のいずれかでそれを呼び出すことができます - ボディは常に明示的に値を返さないし、決してそのthis
を使用するため、違いはありません。
関連する問題
- 1. オペレータnew/delete&destructors
- 2. ANTLR:オプションのパラメータ(?使用するオペレータ)
- 3. オペレータ=のプレースメントnew(this)を使用できますか?
- 4. jQuery.Deferred() - "new"演算子はオプションですか?
- 5. publicオペレータnew、privateオペレータdelete:newを使用するとC2248「プライベート・メンバにアクセスできません」
- 6. オペレータ
- 7. オペレータnewはライブラリ付きのカスタムメモリマネージャで既に定義されています
- 8. 新しいおよびオプションの引数をオペレータに削除
- 9. Javascript ||オペレータ
- 10. ||オペレータは?
- 11. PHP $$オペレータ
- 12. オペレータは
- 13. またはオペレータ
- 14. ないオペレータ
- 15. Linqのオペレータで
- 16. Android数学オペレータ
- 17. Desugar Luaオペレータ
- 18. ||オペレータ通知
- 19. のMySql:オペレータ
- 20. 名「: - 」中置オペレータ
- 21. ユーザーがオペレータnewを呼び出したときの割り当て/オブジェクトの詳細のインターセプトとコレクションの問題
- 22. オペレータnewが大量の物理メモリを使用できる間に例外をスローする
- 23. オーバーロード出力オペレータは
- 24. オペレータC++でのオーバーロード
- 25. オペレータのヘルプのオーバーロード?
- 26. Perl6オペレータの質問
- 27. オペレータを除いて
- 28. オペレータDelphiでのオーバーロード
- 29. ジャワ - のcompareToとオペレータ
- 30. "!"の違いと "。"オペレータ
'this.preventDefault'とは何ですか? – Randomblue
私のポストでアップデートをチェックしてください。 –