我想创建一个类似Google Closure的结构,其中"类"存储在" app.classes.someClass"时尚,以便将它们保存在一个名称空间下。 我还需要继承,使用父方法知道它的当前构造函数名称并根据当前(子)类生成一个字符串。 我设法完成了我想要的东西,但我不确定这是继承工作的最佳解决方案。
app.utils.inherits = function(childCtor, parentCtor)
{
/** @constructor */
function tempCtor() {};
tempCtor.prototype = parentCtor.prototype;
childCtor.superClass_ = parentCtor.prototype;
childCtor.prototype = new tempCtor();
/** @override */
childCtor.prototype.constructor = childCtor;
};
app.classes.pageController = function pageController() {};
app.classes.pageController.prototype.init = function () {};
app.classes.pageController.prototype.getTemplate = function ()
{
var name = this.constructor.name;
name = name.replace('PageController', '');
return $('#page-template-'+name).html();
};
// REQUEST PAGE CONTROLLER
app.classes.requestPageController = function requestPageController()
{
app.classes.pageController.call(this);
};
app.utils.inherits(app.classes.requestPageController, app.classes.pageController);
app.classes.requestPageController.prototype.init = function ()
{
var template = app.classes.pageController.prototype.getTemplate.call(this);
....
};