我有下面的代码,因为你可以看到我手动指定了我想要返回的属性,我不关心私有/公共功能,所以我想要一个快速的&动态方式只返回范围内的所有函数。这可能吗?我已经尝试了一些但遇到麻烦的事情,它必须在范围内完成,否则它无法看到功能。
var MyObj = {
(function() {
function MyFuncOne() {}
function MyFuncTwo() {}
return {
MyFuncOne: MyFuncOne,
MyFuncTwo: MyFuncTwo
}
})()
}
var MyObjTwo = {
(function() {
function MyFuncOne() {}
function MyFuncTwo() {}
return {
MyFuncOne: MyFuncOne,
MyFuncTwo: MyFuncTwo
}
})()
}
我想要的伪代码:
function ReturnAllProperties() { //foreach func in scope append to list }
然后在return { ReturnAllProperties(); }
答案 0 :(得分:0)
在行之间读取我认为你想要一个单例命名空间模式。
var MYNAMESPACE = (function(){
//Private vars
var x, y, z;
var MyFuncOne = function() {.....}
var MyFuncTwo = function() {.....}
return {
//Here expose functions as privileged methods
//You can also expose non-function vars (Numbers, Strings, plain Objects, Arrays) but in general you should expose only methods.
MyFuncOne: MyFuncOne,
MyFuncTwo: MyFuncTwo
};
})();
按照惯例,名称空间成员是CAPITALIZED。