我正在开发一个项目,其中我有一个根对象文字,它存储其余部分使用的常量和枚举之类的东西,以及用于分隔不同功能的嵌套对象文字。像这样的东西:
root = {
enum : {
FIRSTVAL : 0,
SECONDVAL : 1,
THIRDVAL : 2,
},
CONST : 0xFFE8,
}
root.display = {
renderer : function() {
// do something...
do_some_fun(enum.FIRSTVAL);
}
// other functions
}
root.engine = {
processor = function() {
// do some stuff
run_calculations(CONST);
}
// some other functions
}
基本上,我使用顶级对象文字作为命名空间,其他对象/函数分布在多个文件中。唯一的问题是根对象的属性不能被根的孩子访问,例如 root.display.renderer 中的 enum 或 root.engine.processer 中的 CONST。如果 root 是一个函数对象,这将很容易通过原型链完成,但我希望 root 对象是静态的并且仅用作容器。
在 Javascript 中完成这种结构的最佳方法是什么?我可以使用更好的结构来实现项目封装的相同目标吗?
编辑:对不起,我没有正确地提到继承。我知道可以直接访问 root 的属性(通过 root.whatever)。我想知道是否有可能对 root 的引用隐含在 root 的子级中;除非使用直接引用是 Javascript 的标准做法?