我编写了一个最小的JavaScript类,它接受构造函数的2个参数,如下所示:
class myClass {
constructor(name, age) {
this.name = name;
this.age = age;
}
startProcess() {
// call other functions that use this.name and this.age
}
}
var init = new myClass('John', 29);
init.startProcess();
初始化John
并将其添加到29
时,有没有办法删除myClass
和init.startProcess
参数?我仍然希望可以从其他函数访问这些参数。
基本上,我想这样做并保持相同的功能。
var init = new myClass();
init.startProcess('John', 29);
答案 0 :(得分:3)
删除构造函数并将初始化代码移至startProcess
:
class myClass {
startProcess(name, age) {
this.name = name;
this.age = age;
}
}
const init = new myClass();
init.startProcess('John', 29);
console.log(init);
答案 1 :(得分:1)
只需将其传递给函数startProcess
,然后从constructor
发出它们。这将允许您以两种形式初始化值。如果您未向constructor
传递任何内容,则会创建变量,但会将值设置为undefined
。另外,因为这里有代码重复,您可以将此部分添加到private function
class myClass {
constructor(name, age) {
this._init(name, age);
}
startProcess(name, age) {
this._init(name, age);
// Other logics
}
_init(name, age) {
this.name = name;
this.age = age;
}
}
const init = new myClass();
init.startProcess('John', 29);
console.log(init);