Javascript命名空间,语法错误在哪里?

Fly*_*wat 1 javascript namespaces

我正在使用我前一段时间写过的现有JS库,并试图在一个公共命名空间下组织它......以下是我尝试使用的技术示例:

var NameSpace = new function ()
{
    var privateMember = [];

    function privateMethod() {};


    return 
    {       
        PublicMethod1 : function(arg, arg2)
        {
            // etc
        },
        PublicMethod2 : function ()
        {
            // etc
        },
        PublicMethod3 : function(arg, arg2)
        {
            // etc
        }
    };  

}();
Run Code Online (Sandbox Code Playgroud)

从我所知道的,这应该是完美的,但是我在这一行得到一个语法错误:

PublicMethod1 : function(arg, arg2)
Run Code Online (Sandbox Code Playgroud)

谁能看到这种技术有一些明显的问题?

Tom*_*nto 9

var NameSpace= function ()
{
    var privateMember = new Array();

    function privateMethod() { };

    return {           
        PublicMethod1 : function(arg, arg2)
        {
                // etc
        },
        PublicMethod2 : function ()
        {
                // etc
        },
        PublicMethod3 : function(arg, arg2)
        {
                // etc
        }
    };  

}();
Run Code Online (Sandbox Code Playgroud)

问题真的很棘手,回归并{显然应该在同一条线上.另外new []无效,我也为你解决了这个问题.