Google Closure中的部分课程?

时间:2012-09-20 20:46:06

标签: google-closure-compiler google-closure

使用Google Closure编译器是否可以在两个文件中定义一个类?例如,如果我自动生成一个类并希望为用户输入的代码保留另一个类:

在MyClass.AutoGenerated.js

goog.provide("MyClass");
MyClass = function() {
}
MyClass.prototype.SomeMember = 15;

然后在MyClass.js中,继续声明成员和函数:

MyClass.prototype.AnotherMember = 15;
MyClass.prototype.SomeAwesomeFunction = function() {};

2 个答案:

答案 0 :(得分:4)

只要文件订购正确,这不是问题。如果可以在填写原型之前实例化类,那么排序可能会很棘手。

答案 1 :(得分:1)

我发现接近这一点的唯一方法是不依赖于构建顺序:

在MyClass.js

goog.provide("MyClass");
MyClass = function() {
}
MyClass.prototype.SomeMember = 15;

然后在MyClass.Partial.js中,继续声明成员和函数并提供名称空间为.Partial (例如):

goog.require("MyClass");
goog.provide("MyClass.Partial");

MyClass.prototype.AnotherMember = 15;
MyClass.prototype.SomeAwesomeFunction = function() {};

然后调用代码必须调用:

goog.require("MyClass");
goog.require("MyClass.Partial");

以便以正确的顺序包含这两个文件。 MyClass.Partial 类不需要以任何方式存在;它只是goog.require和goog.provide方法使用的标识符。