javascript的面向对象中,能实现多个构造函数重载吗?谢谢!

解决方案 »

  1.   

    可以的哇//定义一个类
    var C = class_(function () {
        var x;    //成员函数
        this.getX = _(function () {
            return x;
        });    /* 也可无构造函数 */
        //构造函数重载1
        C._(Integer, function (i) {
            x = "Integer: " + i;
        });    //构造函数重载2
        C._(String, function (s) {
            x = "String: " + s;
        });
    });//创建两个C的实例
    var c1 = new C("abc");
    var c2 = new C(123);alert(c1.getX());
    alert(c2.getX());
      

  2.   

    var dt1 = new Date(2011,11,11)
    var dt2 = new Date(1323532800000)
    类似这样,但并不是和c#这类的语言那样有真的重载,根据参数来判断可以
      

  3.   

    <html>
    <head></head>
    <body>
    <script type="text/javascript">
    function Person(){
    if(arguments.length == 1){
    this.name = arguments[0];


    }

    if(arguments.length == 2){
    this.name = arguments[0];
    this.age = arguments[1];

    this.getAge = function(){
    return this.age;
    };
    }

    this.getName = function(){
    return this.name;
    };

    };

    var p = new Person('aaa');
    alert(p.getName());

    var p2 = new Person('bbb',11);
    alert(p2.getName())
    alert(p2.getAge())
    </script>
    </body>
    </html>用arguments就行啊``
      

  4.   

    同意北北的意见 用arguments控制就可以在写多个构造函数