-2

次のJavaScript関数の違いを知りたいです。誰かが違いを助けてくれますか?また、これら2つの機能を使用する必要があるのはどのような状況ですか?

define(function () {

});

2つ目は、以下の自己実行機能です

(function() { })();

アップデート

私はrequireJSを使用しています

4

1 に答える 1

2

質問のタイトルに「jQuery関数」が記載されていますが、表示したコードにはjQueryが含まれていません。

コードの最初のビット:

define(function () {

});

...という名前の関数を呼び出し、define匿名関数をパラメーターとして渡します(ある種のコールバック?)

二番目:

(function() { })();

匿名関数を定義し、すぐに呼び出します。

「違いは何ですか。また、どのような状況でこれら2つの機能を使用する必要がありますか?」

関数をいつ使用するかについてのガイダンスについては、RequireJSAPIのドキュメントを参照してdefine()ください。2番目の例のように即時呼び出し無名関数については、このような構造を使用する理由はさまざまです。たとえば、一般的な理由は、グローバルを作成せずに作業変数やネストされた関数を作成することです。

setTimeout(function(){ },1)私の考えでは、2つを比較すること(とにかくコンテキストなしで)は、比較する(function() { })();(または関数をパラメーターとして取る他のランダム関数を比較する)よりも意味がありません。

于 2012-07-16T03:51:48.347 に答える