我有一些问题,我确信社区可以帮助我)))
例如:我有下一个javascript文件
file1.js
goog.provide('namespace.ModuleName');
goog.require('namespace.ModuleName.Item')
/**
* @param {Object} args
*@constructor
*/
namespace.ModuleName = function(args) {
....
..Initialization..
...
var item = [];
item.push(new namespace.ModuleName.Item(args)) // THIS ERROR
}
/**
* @private
*/
namespace.ModuleName.prototype.MyMethod = function() {
...
...
...
}
下一部分。我想创建新文件
file2.js
goog.provide('namespace.ModuleName.Item')
/**
* @param {Object} args
*@constructor
*/
namespace.ModuleName.Item = function(args) {
}
我有一些问题,因为“namespace.ModuleName.Item”不知道namespace.ModuleName。我可以修好它。我需要在goog.provide('namespace.ModuleName.Item')下面写goog.require('namespace.ModuleName')。 但我又有一些问题。 Google Closure编译器编写“Require LOOP”。我可以删除“goog.require('namespace.ModuleName.Item')”的行。但这些解决方案不正确
命名模块的正确方法是什么
我在谷歌论坛上问这个问题。伙计们告诉我“使用goog.forwardDeclare”
https://groups.google.com/forum/#!topic/closure-library-discuss/PptH2fzcs_M
我尝试在goog.provide('namespace.ModuleName.Item')下面的\上面写goog.forwardDeclare('namespace.ModuleName')。但它对我不起作用。你能帮助我吗 ?请。或者写一些例子。如何使用goog.forwardDeclare。