0

同じ関数スコープでdefineとrequireの両方を使用できるかどうかを知りたい。通常、requireまたはdefineのいずれかですが、両方を同じスコープに含めるにはどうすればよいですか?

define(["my/cart", "my/inventory"],
    function(cart, inventory) {
        //Define foo/title object in here.
   }
);

require(["some/module", "a.js", "b.js"], function(someModule) {
    //This function will be called when all the dependencies
    //listed above are loaded. Note that this function could
    //be called before the page is loaded.
    //This callback is optional.
}); 
4

1 に答える 1

3

このdefine関数は、AMD スタイルを使用して依存関係を持つモジュールを「定義」するためのものであり、require主に以前にdefine関数で定義されたモジュールを呼び出すために使用されます。

ファイルごとに 1 つのモジュールのみを定義することをお勧めしますがdefine、モジュールの名前をその関数の最初の引数として渡す場合は、複数のモジュールを追加できます。

define関数に名前を明示的に渡すとdefine、呼び出し内にネストできますがrequire、渡されたすべての依存関係を直接に渡すことができるため、意味がありませんrequiredefineこれは、内部で定義するネストよりも高速で明確です。

requireおそらく、 a の中に aをネストするdefine方が便利かもしれません。おそらく、特定の条件下でのみ必要な依存関係を持つモジュールがある場合は、define関数に共通の依存関係を追加しrequire、条件付きのより具体的な依存関係を追加することは理にかなっています。声明。

私の意見では、重要な概念は、基本的にdefineAMD モジュールを定義するためのものであり、requireそれらを呼び出すためのものであると理解することです。(AMD 以外のファイルを依存関係として使用できますが、これは別の問題です。)

于 2012-05-23T16:23:54.467 に答える