如何动态返回范围内的所有函数?

时间:2012-03-08 01:11:46

标签: javascript jquery

我有下面的代码,因为你可以看到我手动指定了我想要返回的属性,我不关心私有/公共功能,所以我想要一个快速的&动态方式只返回范围内的所有函数。这可能吗?我已经尝试了一些但遇到麻烦的事情,它必须在范围内完成,否则它无法看到功能。

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(); }

1 个答案:

答案 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。