使用方法参数的JavaScript调用构造函数

时间:2017-10-06 06:57:13

标签: javascript class

我编写了一个最小的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时,有没有办法删除myClassinit.startProcess参数?我仍然希望可以从其他函数访问这些参数。

基本上,我想这样做并保持相同的功能。

var init = new myClass();
init.startProcess('John', 29);

2 个答案:

答案 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);