私はいくつかのjavascriptクラスを持っており、コンストラクターのパラメーターをチェックするsomeClass
初期化関数を持っています。init
このパラメータを持つオブジェクトはかなり大きく、この関数は大きくなりすぎました。
function SomeClass (paramObj) {
this.inputHourId;
this.inputHourName;
this.inputHourValue;
......
......
this.Init = function (paramObj) {
if (typeof paramObj.hourOptions.inputName == "undefined") {
this.inputHourName = "default_name";
} else {
this.inputHourName = paramObj.hourOptions.inputName;
}
if (typeof paramObj.hourOptions.inputValue == "undefined") {
this.inputHourValue = "default_value";
} else {
this.inputHourValue = paramObj.hourOptions.inputValue;
}
......
......
......
}
this.Init(paramObj);
}
コードの重複を避けて読みやすくするために、チェックを使用して変数の初期化を行う関数を作成することにしました。
this.initVar = function (veriable, value) {
if (typeof value == "undefined") {
veriable = "some_default_value";
} else {
veriable = val;
}
}
関数を追加initVar
すると、私のInit
関数は次のようになります。
this.Init = function(paramObj){//入力時間の初期化this.initVar(this.inputHourId、paramObj.hourOptions.inputId); this.initVar(this.inputHourName、paramObj.hourOptions.inputName); this.initVar(this.inputHourValue、paramObj.hourOptions.inputValue); .... ........}
しかし、その後もクラス変数this.inputHourName
はまだですundefined
さて、質問です。関数を使用してクラスプロパティを初期化するにはどうすればよいですか?または、関数パラメータのようなクラスプロパティを送信するにはどうすればよいですか?