javascript:相同类型对象的不同构造函数

时间:2011-02-07 09:29:39

标签: javascript multiple-constructors

是否可以在javascript中为一个类设置多个构造函数? 即一个零参数,一个有一个,一个有两个等等......

若然,怎么样?

谢谢!

2 个答案:

答案 0 :(得分:8)

不,Javascript不支持函数重载。

但是,在每个函数内部,您都可以访问arguments object,它包含提供给函数的所有参数,无论是否声明。您可以简单地查看它并确定您想在构造函数中做什么。

糟糕,未经定义的例子:

function Foo() {

    function singleParamConstructor(foo) {
        ...
    }
    function twoParamConstructor(foo, bar) {
        ...
    }

    switch (arguments.length) {
        case 1 :
            singleParamConstructor(arguments[0]);
            break;
        case 2 :
            twoParamConstructor(arguments[0], arguments[1]);
            break;
        ...
    }
}

答案 1 :(得分:1)

这可能会有所帮助:JavaScript constructor parameter types