循環依存関係を修正するためにrequireJsのドキュメントを読むexports
ことは、他のモジュールがすぐに参照できるモジュールの空のオブジェクトを作成するために使用することをお勧めします。
このコードを試しましたが、機能しないようです。なにが問題ですか?
PS:
出力、
特にsetTimeout呼び出し内のBモジュールを確認するためのコメントを読んでください。
// A module
define([
'b'
], function (b) {
console.log('B:', b); // B, Object
var A = {
boo: 1
};
return A;
});
// B module
define([
'a',
'exports'
], function (a, exports) {
console.log('A:', a); // A, undefined (as I was expecting)
exports.A = function () {
return a;
}
var B = {
bar: 1
};
setTimeout(function () {
console.log('exports.A', exports.A()); // exports.A undefined
// I would like to access the A object
// which is defined in A module
}, 500);
return B;
});
// main.js
(function () {
define([
'a'
], function () {
});
}());