我有一些 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);
}
为了避免代码重复并使其更具可读性,我决定创建一个函数,该函数将使用 check 进行 var 初始化
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
现在的问题。如何在函数的帮助下初始化我的类属性?或者我如何传输类属性,如函数参数?