7

javascript中的一个类可以有多个构造函数吗?即一个带零参数,一个带一个,一个带两个,等等......

如果是这样,如何?

谢谢!

4

2 回答 2

8

不,Javascript 不支持函数重载。

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

不好的,未精炼的例子:

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;
        ...
    }
}
于 2011-02-07T09:34:01.650 回答
1

这可能会有所帮助:JavaScript 构造函数参数类型

于 2011-02-07T09:33:02.543 回答