js模拟面向对象,未采用dojo jquery 等框架如何能够实现根据参数不同调用不同构造函数呢如function myclass()
{
    this.name="defaultname";
    this.sex="nosex";
}如果输入一个参数,只初始化name,两个则都初始化,我现在用的本办法,就是用arguments.length判断,
function myclass()
{
    this.name="defaultname";
    this.sex="nosex";
    if(arguments.length==1) this.name=arguments[0];
....
}感觉这个不像个构造函数了,很怪异,有没有正规的定义多个构造函数的方法

解决方案 »

  1.   

    没有,只能靠你这样的笨方法判定但是你可以这样function myclass()
    {
        this.name="defaultname";
        this.sex="nosex";
        if(arguments.length==1) {
            a1();
        } else {
            a2();
        }    function a1() {
        }    function a2() {
        }
    ....
    }
      

  2.   

    function myclass(name, sex)
    {
        this.name= name || "defaultname";
        this.sex= sex || "nosex";
    }