7

javascriptのクラスに複数のコンストラクタを持つことは可能ですか? つまり、パラメータがゼロのもの、パラメータが 1 つのもの、パラメータが 2 つのものなど...

もしそうなら、どのように?

ありがとう!

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 に答える