javascriptのクラスに複数のコンストラクタを持つことは可能ですか? つまり、パラメータがゼロのもの、パラメータが 1 つのもの、パラメータが 2 つのものなど...
もしそうなら、どのように?
ありがとう!
javascriptのクラスに複数のコンストラクタを持つことは可能ですか? つまり、パラメータがゼロのもの、パラメータが 1 つのもの、パラメータが 2 つのものなど...
もしそうなら、どのように?
ありがとう!
いいえ、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;
...
}
}
これが役立つかもしれません: JavaScript コンストラクターのパラメーターの型