最初のパラメーターが配列として指定されている場合、コールバックが実行される前にロードするモジュールのリストが含まれます。コールバック関数のパラメーターは、それらのモジュールへの参照を保持します。
最初の例を見てください: ここでは 2 つのモジュールがロードされrequire
て./relative/name
います。コールバックは、パラメータを介して最初のものを受け取りますrequire
。2 番目は引数に渡されますが、名前付き引数はありません。ただし、既にロードされているvar mod = require("./relative/name");
ため、コールバック内で参照を取得するために使用できます。1
2番目の例については、リストしたリンクがこれを示しています
このフォームは Function.prototype.toString() を使用して require() 呼び出しを見つけ、「require」とともに依存配列に追加するため、コードは相対パスで正しく機能します。
つまり、require.js は関数を解析して依存関係を探し、最初の例のように配列を作成します。
ただし、最後の(機能しない)例では、両方を混在させようとしています。しかし、require.js の観点からは次のよう./relative/name
になりますrequire
。関数内で、今度は という名前で、同じモジュールへの別の参照を取得しようとしますmod
。そのため、require.js の場合はすべて問題ないように見えますが、(誤って) 予想されるように、両方ではなく 1 つのモジュールへの参照を取得するだけです。
1を使用した同期モジュールのロードvar mod = require("./relative/name");
は、モジュールが以前に他の呼び出しによってロードされた場合にのみ機能します (必ずしも現在のモジュールによってではありません)。