调用原型的所有方法?

时间:2017-11-04 14:01:01

标签: javascript typescript

鉴于如下所示的课程,我可以console.log完成所有PropertyNames

class Security {
  constructor(param: ParamType) {
    this.method1(param);
    ...
    this.methodN(param);
  }
  method1(param){...};
  ...
  methodN(param){...};
}

Object.getOwnPropertyNames(Security.prototype).forEach( (value) => {
    console.log('Method: ', value);
    // value()?
});

我的问题是如何在// value()?

的位置调用所有方法

1 个答案:

答案 0 :(得分:6)

你可以这样写:

class Security {
  method1(param) {
    console.log("M1");
  }

  method2(param) {
    console.log("M2");
  }
}

function callAll() {
  Object.getOwnPropertyNames(Security.prototype).forEach(value => {
    if (value !== 'constructor' && typeof Security.prototype[value] === 'function')
        this[value]();
  });
}

callAll.apply(new Security())