方法一:
var parentClass = function(){
//类中的属性:
this.value="parent";
//类中类:
this.sonClass = function(){
this.value = "son";
};
};
var parent = new parentClass();
var son = new parent.sonClass();
alert(son.value);
alert(parent.value);
//结果: son   后 parent
方法二:
///========================================
var parentClass = function(){
//类中的属性:
this.value="parent";
//类中类:
this.sonClass = function(){
this.value = "son";
};
this.sonObj;
//构造func
(function(){
this.sonObj=new this.sonClass();
}).apply(this,arguments);
};
var parent = new parentClass();
alert(parent.sonObj.value);
alert(parent.value);
//结果: son   后 parent

解决方案 »

  1.   

    第一种,可读性上就差,this.sonClass这种方式很容易被误认为是一个方法。还有就是sonClass如果外面用不到,也不用暴露出来了,直接和parentClass内部即可。var parentClass = function(){
        //类中的属性:
        this.value="parent";
        //类中类:
        var sonClass = function(){
            this.value = "son";
        };
    };
    var parent = new parentClass();
    第二种,基本类似,只是能够获取到parentClass的初始化参数,但是从例子中看不出来parent与son有什么必然的联系...
      

  2.   

    搞不清楚你这么设计的目标是什么,sonClass继承parentClass?
      

  3.   

    我想用:
    是包含设计法!就如!
    js 所有对象都 从window起一样
      

  4.   

    无所谓什么类中类,js中的函数(方法)都可以当作构造函数使用,就比如随便写个
    function test(){}
    var a=new test();//一样可以产生一个对象,只是没有属性而已;
    a.test=test;
    var b=new a.test();//方法也可以当作构造函数使用,当然也没有属性像你上面那个所谓类中类,当作方法调用一样是可以的
    var parent = new parentClass();
    parent.sonClass();//方法里面的this指代方法拥有者,所以这个方法在这里给parent对象添加了一个value属性
    alert(parent.value);
      

  5.   

    类中类,
    目的是管理一些类,如果不用这样搞
     全部都是 
    var classXX = function(){};这样的话,
     那么, 我们声明的类,全部都会 被window 对象包含,
     
    那么,开发员之问的共同作业,可能有对象冲突, 当然,还有类管理,不同的类放在不同的地方,
    比如,
      我们用到一些数组,两维的,树形数据,等等数据类型 放到一个类中,
      一些界面移动,展示的,放到一个类中
      一些,与服务器通讯的,放到一个类中,
    以便 
      copy 就可以用,不会冲突。
      

  6.   

    用namespace啊var ns1 = ns1 || {};
    ns1.foo = function(){};
    var ns2 = ns2 || {};
    ns2.foo = function(){};
      

  7.   

    var parentClass={
        //类中的属性:
        value:"parent",
        //类中类:
        sonClass:{
            value:"son"
        }
    };
    alert(parentClass.value);
    alert(parentClass.sonClass.value);