Javascript名称空间,语法错误在哪里?
我正在使用我不久前编写的一个现有JS库,并尝试将其组织在一个公共名称空间下……下面是我尝试使用的技术的一个示例:Javascript名称空间,语法错误在哪里?,javascript,namespaces,Javascript,Namespaces,我正在使用我不久前编写的一个现有JS库,并尝试将其组织在一个公共名称空间下……下面是我尝试使用的技术的一个示例: var NameSpace = new function () { var privateMember = []; function privateMethod() {}; return { PublicMethod1 : function(arg, arg2) { // e
var NameSpace = new function ()
{
var privateMember = [];
function privateMethod() {};
return
{
PublicMethod1 : function(arg, arg2)
{
// etc
},
PublicMethod2 : function ()
{
// etc
},
PublicMethod3 : function(arg, arg2)
{
// etc
}
};
}();
据我所知,这应该可以很好地工作,但是我在这一行遇到了语法错误:
PublicMethod1 : function(arg, arg2)
有人能看到这种技术的一些明显问题吗
var NameSpace= function ()
{
var privateMember = new Array();
function privateMethod() { };
return {
PublicMethod1 : function(arg, arg2)
{
// etc
},
PublicMethod2 : function ()
{
// etc
},
PublicMethod3 : function(arg, arg2)
{
// etc
}
};
}();
这个问题很棘手,return和{显然应该在同一行。另外new[]无效,我也为您解决了这个问题
这个问题很棘手,return和{显然应该在同一行。另外new[]无效,我也为您解决了这个问题。只是关于数组分配的一个简短说明 这项工作:
var privatember=new Array();
这也行得通:
var privatember=[];
当然,这并不是:
var privatember=new[];
从闭包中创建一个单例是完全可以接受的(纠正返回位置),不需要像第二条注释中那样是对象的实例化,只需简单地说明数组赋值即可 这项工作:
var privatember=new Array();
这也行得通:
var privatember=[];
当然,这并不是:
var privatember=new[];
从闭包中创建一个单例是完全可以接受的(纠正返回位置),不需要像第二条评论中那样是对象的实例化JavaScript不需要在行尾加分号,所以在下一行加上括号就是让函数在到达括号之前返回。我已经被同样的问题烧坏了。你不能在新行上写
{
。+使用var variable={}
优于var variable=new Object()
。更清晰、更明显的定义JS是“不可知空白”的说法有些荒谬JavaScript不需要在行尾加分号,所以在下一行加上括号就是让函数在到达括号之前返回。我已经被同样的问题烧坏了。你不能在新行上写{
。+使用var variable={}
优于var variable=new Object()
。它的定义更清晰明了