比如一段很简单的代码:var a=1
function f1(){
   this.n=10  
}
f1.prototype.a=1
var obj=new f1()
alert(obj.n)
alert(obj.a)
如果它的命名空间是x,是要对下面的上面的代码进行这样的改造吗?var x={a:1,f1:function(){ this.n=10 }}
x.f1.prototype.a=1
x.obj=new x.f1()
alert(x.obj.n)
alert(x.obj.a)
或者var x={}
x.a=1
x.f1=function (){
   this.n=10  
}
x.f1.prototype.a=1
x.obj=new x.f1()
alert(x.obj.n)
alert(x.obj.a)那些要求命名空间的公司,代码都是这样写的吗?

解决方案 »

  1.   

    这是ExtJs的命名空间函数,从window开始建立Ext = {
     namespace : function(){
                var o, d;
                Ext.each(arguments, function(v) {
                    d = v.split(".");
                    o = window[d[0]] = window[d[0]] || {};
                    Ext.each(d.slice(1), function(v2){
                        o = o[v2] = o[v2] || {};
                    });
                });
                return o;
            }
    }