我原来是一名电气工程专家,所以我的计算机科学术语可能会关闭,但我相信我做的是“命名空间”:
var MyNamespace = (function(local1, local2, local3){
// local1 === global1 and so on
// private vars
var foo;
var bar;
// private functions
function isFooBar() {
return foo == bar;
}
return {
// public vars
publicFoo: 'foo',
publicBar: 'bar',
// public functions
foo: function() {
return foo;
},
bar: function() {
return bar;
}
};
})(global1, global2, global3);
这可能不是“最佳”练习,但这是我和我团队中其他人多年来一直在做的事情。
现在的问题是:如何让Eclipse识别层次结构?我想最终在大纲视图中得到某种结构,如:
MyNamespace
- local1 (private => global1)
- local2 (private => global2)
- local3 (private => global3)
- foo (private)
- bar (private)
O foo() (private)
O bar() (private)
O foo() (public)
O bar() (public)
如果这是有意义的( - 对于变量,O代表函数)
目前我可以在变量或函数之前添加以下JavaDoc注释:
/**
* description
* @memberOf MyModule
*/
函数/变量将显示,但我仍然得到MyNamespace变量的一些残余节点以及未命名的函数和全局 - >局部变量。
没有进入是否是一种编程JavaScript命名空间的“正确”方法的语义,任何人都可以告诉我一个很好的方法来获取它,以便我的命名空间及其公共/私有变量/函数将正确显示在大纲标签中?